:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#edf3ff;background:#0c1220}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#29375c,#0c1220 60%);min-height:100vh}main{width:min(960px,calc(100% - 32px));margin:auto;padding:32px 0 56px}.panel{background:#151f35e8;border:1px solid #526b9f;border-radius:20px;padding:28px;box-shadow:0 18px 55px #0007}.home{text-align:center;margin:10vh auto;width:min(100%,680px);animation:rise-in .5s both}.hidden{display:none!important}.eyebrow{letter-spacing:.12em;color:#9db6ec;font-size:.76rem}.mode-buttons,.seats,.hand,.opponent-hand,.turn-actions{display:flex;gap:14px;flex-wrap:wrap}.mode-buttons{justify-content:center;margin-top:28px}button,.seat-link{border:0;border-radius:10px;background:#f5cf70;color:#18223a;padding:12px 17px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none;transition:transform .16s,filter .16s,box-shadow .16s}button:hover:not(:disabled){transform:translateY(-3px);filter:brightness(1.07);box-shadow:0 7px 16px #0004}button:active:not(:disabled){transform:translateY(1px) scale(.97)}.secondary{background:#9dcaff}.minor{background:#2a3b60;color:#e9f1ff}.danger{background:#d87575;color:#251419}.turn-actions{justify-content:center;margin-top:18px}.turn-actions button:disabled{opacity:.45;cursor:not-allowed}.operation-bar{margin-top:20px}.operation-bar ol{margin:8px 0 0;padding-left:22px;color:#b9c9e8}.operation-bar .active-step{color:#f5d47f;font-weight:800}.error{color:#ffadad;min-height:1.4em}.seats{margin:26px 0}.seat{flex:1;min-width:240px;padding:18px;background:#101a2d;border-radius:14px;text-align:center}.seat.joined{outline:2px solid #78d6ad;animation:joined .45s ease-out}.qr{width:180px;height:180px;padding:8px;background:#fff;margin:auto}.qr img{width:100%;height:100%;display:block}.seat-link{display:block;margin:10px 0;background:#33496f;color:#eaf2ff}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.battlefield{display:grid;grid-template-columns:1fr 54px 1fr;gap:16px;align-items:center}.player{display:flex;justify-content:space-between;gap:12px;padding:18px;background:#151f35e8;border:1px solid #526b9f;border-radius:16px;min-height:170px}.player p{margin:0 0 4px}.player small,.hand-label{display:block;color:#adc0e8;margin-top:6px}.vs{text-align:center;font-size:30px;animation:vs-glow 2.4s ease-in-out infinite}.card{width:118px;min-height:142px;padding:14px;border-radius:12px;border:2px solid #d6dde8;background:#f7f9ff;color:#1b263b;display:flex;flex-direction:column;justify-content:space-between;text-align:left}.board-card{margin:auto}.empty-slot{margin:auto;color:#a9b9d9}.stats{font-weight:700}.hand{justify-content:center}.hand-card:hover:not(:disabled){transform:translateY(-8px) rotate(-1deg)}.hand-card:disabled{opacity:.55;cursor:default}.card-back{width:43px;min-height:64px;border-color:#d6b65d;background:repeating-linear-gradient(45deg,#203451 0 7px,#3a5b89 7px 14px);box-shadow:inset 0 0 0 4px #15233a}.card-back::after{content:"✦";margin:auto;color:#f4d277;font-size:22px}.action{margin-top:20px;text-align:center}.action h2{min-height:1.5em}.log{margin-top:20px}.log ul{margin:0;padding-left:20px;color:#c5d3ee}.status{text-align:center;color:#a9c8ff;min-height:1.4em}.card-deal{animation:deal .4s cubic-bezier(.2,.8,.3,1) var(--deal-delay,0ms) both}.card-departing{opacity:.12;transform:scale(.9)}.flying-card{position:fixed;z-index:20;pointer-events:none;margin:0;will-change:transform,opacity}.card-land{animation:card-land .5s cubic-bezier(.18,.95,.32,1.25)}.player-hit{animation:hit .45s ease-out}.faith-loss{display:inline-block;animation:faith-loss .6s ease-out}.slot-break{animation:break-slot .45s ease-out}.notice-pop{animation:notice-pop .34s ease-out}.log-entry{animation:log-in .28s ease-out var(--log-delay,0ms) both}@keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes deal{from{opacity:0;transform:translateY(30px) rotate(5deg) scale(.85)}to{opacity:1;transform:none}}@keyframes card-land{0%{transform:scale(.68) rotate(-7deg);filter:brightness(1.35)}62%{transform:scale(1.08) rotate(2deg)}100%{transform:none;filter:none}}@keyframes hit{0%,100%{transform:none}18%{transform:translateX(-8px);background:#623040}38%{transform:translateX(7px);background:#703343}58%{transform:translateX(-4px)}}@keyframes faith-loss{0%{color:#fff;transform:scale(1)}35%{color:#ff9585;transform:scale(1.32)}100%{color:inherit;transform:scale(1)}}@keyframes break-slot{0%{filter:brightness(1.5)}30%{transform:scale(1.06);filter:brightness(2) sepia(1)}100%{transform:none;filter:none}}@keyframes notice-pop{from{opacity:.25;transform:translateY(-5px)}to{opacity:1;transform:none}}@keyframes log-in{from{opacity:0;transform:translateX(-9px)}to{opacity:1;transform:none}}@keyframes vs-glow{50%{transform:scale(1.12);filter:drop-shadow(0 0 9px #f5cf70)}}@keyframes joined{0%{transform:scale(.96);filter:brightness(1.4)}100%{transform:none;filter:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.flying-card{display:none}}@media(max-width:640px){main{width:min(100% - 20px,960px);padding-top:14px}.battlefield{grid-template-columns:1fr}.vs{order:1}.opponent{order:0}.player{min-height:130px}.seats{flex-direction:column}header{align-items:flex-start}.card{width:105px}}
.prophecy-card{background:linear-gradient(145deg,#dcecff,#72aef5);border-color:#b7dbff;color:#102d57;box-shadow:inset 0 0 0 1px #ffffff80}
/* 场上盖伏卡的卡背：深色渐变场 + 内框 + 居中徽记圆牌（怪物金蓝、预言银紫）。 */
.board-card.monster-card-back,.board-card.prophecy-card-back{position:relative;display:flex;align-items:center;justify-content:center;padding:0}
.board-card.monster-card-back::before,.board-card.prophecy-card-back::before{content:"";position:absolute;inset:5px;border-radius:7px;pointer-events:none}
.board-card.monster-card-back{border:2px solid #567fb8;background:radial-gradient(circle at 50% 45%,#4a6c9e4d 0%,transparent 40%),radial-gradient(ellipse 135% 100% at 50% 30%,#3a5c92,#213c64 44%,#122540 74%,#0a1422);box-shadow:inset 0 0 24px #07111ecc,0 5px 16px #05101dc4}
.board-card.monster-card-back::before{border:1px solid #86acdd4a;box-shadow:inset 0 0 10px #0a1626b0}
.board-card.monster-card-back::after{content:"◆";display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 42% 36%,#2d4b78,#152840 72%);box-shadow:inset 0 0 0 1.5px #e2b46b,inset 0 0 12px #0a1626,0 0 0 4px #5681bd26,0 0 22px #7fa8dc40;color:#f4c986;font-size:1.55rem;text-shadow:0 0 12px #eab86a85,0 1px 1px #0009}
.board-card.prophecy-card-back{border:2px solid #a48bda;background:radial-gradient(circle at 50% 45%,#6b56a84d 0%,transparent 40%),radial-gradient(ellipse 135% 100% at 50% 30%,#513f8c,#332860 44%,#1f1948 74%,#120d2a);box-shadow:inset 0 0 24px #0e0922cc,0 5px 16px #0a0820c4}
.board-card.prophecy-card-back::before{border:1px solid #c6b0f24a;box-shadow:inset 0 0 10px #140f2eb0}
.board-card.prophecy-card-back::after{content:"✦";display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 42% 36%,#40347a,#241b48 72%);box-shadow:inset 0 0 0 1.5px #e0d0ff,inset 0 0 12px #14102e,0 0 0 4px #9d84d626,0 0 22px #b79bec45;color:#f2ebff;font-size:1.7rem;text-shadow:0 0 14px #cbb2ff90,0 1px 1px #0009}
.spirit-points{position:relative;z-index:6;display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:10px;margin-top:7px}.spirit-point{display:block;width:9px;height:9px;border-radius:50%;background:#42a5ff;border:1px solid #d8f1ff;box-shadow:0 0 6px #168cff,0 0 2px #fff inset}.board-card .spirit-points{justify-content:center}
.battle-slot-layout #game header h1{margin:2px 0 0;font-size:1.05rem;line-height:1.15;letter-spacing:.025em}
.battle-slot-layout .battlefield::after{content:"";position:absolute;z-index:0;pointer-events:none;left:20px;right:20px;top:50%;height:1px;background:linear-gradient(90deg,transparent,#c8995d99 14% 86%,transparent);box-shadow:0 0 9px #c8995d44}.battle-slot-layout .battlefield .player{position:relative;z-index:1}@media(min-width:720px){.battle-slot-layout .battlefield::after{top:16px;bottom:16px;left:50%;right:auto;width:1px;height:auto;background:linear-gradient(180deg,transparent,#c8995d99 14% 86%,transparent)}}
.ready-screen{width:min(100%,620px);margin:14vh auto;text-align:center}.ready-screen h1{margin-bottom:8px}.ready-seat{color:#b9c9e8;margin-bottom:26px}.ready-screen .status{font-size:1.08rem;margin:18px 0 24px}.ready-screen button{margin:0 6px}.ready-screen button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.65)}
.deck-builder-cards{max-height:min(56vh,560px);overflow:auto;padding:4px}
.deck-preset{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid #526b9f;border-radius:12px;background:#101a2d;color:#c5d3ee;font-weight:800}.deck-preset select{min-width:132px;padding:8px 10px;border:1px solid #90a9df;border-radius:8px;background:#203957;color:#edf3ff;font:inherit;font-weight:800}
.deck-preset-row{display:flex;align-items:stretch;gap:10px;margin:0 0 14px;flex-wrap:wrap}.deck-preset-row .deck-preset{flex:1 1 260px;margin:0}.deck-preset-row .deck-random{flex:0 0 auto;align-self:stretch;white-space:nowrap}
.deck-preset-note{margin:-6px 2px 16px;color:#9db6ec;font-size:.82rem;line-height:1.45}
.log-entry{padding:5px 8px;border-radius:7px;line-height:1.5}.log-entry.log-reaction{border-left:3px solid #f5cf70;background:#f5cf7014}.log-entry.log-cover{border-left:3px solid #8198c5;background:#8198c514}.log-player{font-weight:900}.log-player.player-1{color:#7ecbff}.log-player.player-2{color:#ffad82}.log-chain{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:999px;background:#f5cf70;color:#18223a;font-size:.76rem;font-weight:900}.log-card{color:#f5d47f;font-weight:800}
.deck-builder-panel{width:min(920px,100%);margin:auto;background:#17223b;border:1px solid #90a9df;border-radius:20px;padding:20px;box-shadow:0 24px 70px #000}.deck-builder-panel h2{margin:6px 0}.deck-builder-summary{color:#c5d3ee;line-height:1.45}.deck-builder-summary strong.complete{color:#f5cf70}.deck-builder-summary strong.incomplete{color:#ff9b9b}.deck-builder-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(102px,1fr));gap:16px 10px;margin-top:18px}.deck-builder-card{position:relative;display:grid;justify-items:center;align-content:start;min-width:0;min-height:142px}.deck-builder-card .card{position:relative;box-sizing:border-box;display:flex;align-self:start;width:104px;height:142px;min-height:142px;max-height:142px;overflow:hidden;margin:0;padding:10px 8px;font-size:.72rem}.deck-builder-card .card strong{font-size:.76rem;line-height:1.25;overflow-wrap:anywhere}.deck-builder-card .card .stats{font-size:.68rem;line-height:1.3}.deck-builder-card .card .card-effect,.battle-slot-layout .hand-card .card-effect{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.deck-builder-card .card.selected{outline:3px solid #f5cf70;box-shadow:0 0 18px #f5cf7066}.deck-count{position:absolute;left:-9px;top:-10px;z-index:2;display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:999px;background:#e9b93c;color:#17223b;font-size:.92rem;font-weight:900;box-shadow:0 3px 10px #0008}.card-detail{position:absolute;z-index:4;display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid #d6e4ff;background:#203957;color:#e8f3ff;border-radius:50%;font-size:.86rem;font-family:Georgia,serif;font-weight:900;line-height:1}.deck-builder-card .card-detail{left:50%;right:auto;top:auto;bottom:-8px;transform:translateX(-50%)}.deck-builder-card .card-detail,.deck-builder-card .deck-remove{opacity:.5}.deck-builder-card .card-detail:hover,.deck-builder-card .deck-remove:hover{opacity:1}.deck-builder-card .card-detail:hover{transform:translateX(-50%) translateY(-3px)}.hand-card-wrap .card-detail{right:-7px;top:-8px}.deck-remove{position:absolute;right:-5px;top:-8px;z-index:4;display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid #f5b3a8;border-radius:50%;background:#a63f47;color:#fff;font-size:1.25rem;line-height:1}.card-details-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#050914c9;padding:20px}.card-details-modal section{display:flex;flex-direction:column;width:min(340px,100%);padding:22px;text-align:center;background:#17223b;border:1px solid #90a9df;border-radius:20px;box-shadow:0 24px 70px #000}.card-details-modal .card{width:168px;min-height:214px;margin:10px auto 16px}.card-details-modal .skill-full-note{align-self:center}.card-details-actions{align-self:flex-end;margin-top:6px}.card-details-actions button{padding:9px 20px}.deck-builder-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.deck-builder-actions button:disabled{opacity:.42;cursor:not-allowed}.battle-slot-layout .hand-card{flex-basis:118px;width:118px;height:158px;min-height:158px;padding:11px 9px;font-size:.8rem}.battle-slot-layout .hand-card strong{display:-webkit-box;overflow:hidden;font-size:.82rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.battle-slot-layout .hand-card .stats{font-size:.72rem}.battle-slot-layout .hand-card small{font-size:.68rem}@media(max-width:420px){.deck-builder-panel{padding:16px 11px}.deck-builder-cards{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:14px 7px}.deck-builder-card .card{width:98px;height:136px;min-height:136px;max-height:136px}.deck-builder-card{min-height:136px}.battle-slot-layout .hand-card{flex-basis:110px;width:110px;height:150px;min-height:150px}}
.deck-builder-card .card .card-skill{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding-top:4px;border-top:1px dashed #526b9f55;font-size:.58rem;font-weight:700;line-height:1.35;overflow-wrap:anywhere;color:#35507e}.deck-builder-card .card .card-skill b{color:#7c6214}
.skill-full-note{display:inline-block;box-sizing:border-box;min-width:0;width:fit-content;max-width:100%;margin:-8px auto 18px;padding:9px 12px;text-align:left;white-space:normal;background:#101d33;border:1px solid #4a68a3;border-left:3px solid #7aa2f7;border-radius:10px;color:#c9d8f4;font-size:.82rem;line-height:1.55;overflow-wrap:anywhere}.skill-full-note b{color:#f5cf70}
.skill-choice{display:block;cursor:pointer}.skill-choice:hover:not(:disabled){border-color:#86b5ff;background:#17294a;transform:translateY(-2px)}.skill-choice:disabled{opacity:.5;cursor:not-allowed}.skill-choice small{display:block;margin-top:5px;color:#8fb7f5}.skill-target-modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:20px;background:#050914c9}.skill-target-modal section{width:min(430px,100%);padding:26px;text-align:center;background:#17223b;border:2px solid #7aa2f7;border-radius:20px;box-shadow:0 24px 70px #000}.skill-target-options{display:flex;gap:18px;justify-content:center;margin:20px 0}.skill-target-card{display:grid;gap:8px;justify-items:center;padding:10px;background:#101a2d;color:#dce8ff;border:1px solid #4a68a3}.skill-target-card .card{pointer-events:none;width:90px;height:120px;min-height:120px}.skill-target-card b{font-size:.82rem}.selection-option-card{display:inline-flex;padding:7px;background:#101a2d;border:1px solid #3a4d78;border-radius:13px}.selection-option-card:hover:not(:disabled){border-color:#f5cf70;transform:translateY(-2px)}.selection-card-render{pointer-events:none;width:118px;height:150px;min-height:150px;margin:0}
.reactive-trigger{color:#e5484d;font-weight:800}
/* 结构化卡面渲染（v0.4、v0.32 共用）：小卡预览使用固定信息位；详情/操作卡沿用同一骨架，并在卡面下提供完整说明。 */
.structured-card-render .card:not(.card-back){position:relative;display:block;overflow:hidden;padding:10px 8px}.structured-card-render .card-title{position:absolute;top:10px;left:25px;right:25px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:center;font-size:.6rem;font-weight:900;line-height:1.22}.structured-card-render .card-level{position:absolute;top:8px;left:8px;padding:2px 4px;border-radius:5px;background:#243b5b;color:#f5cf70;font-size:.44rem;font-weight:900;line-height:1}.structured-card-render .card:has(.card-element) .card-title{right:32px}.structured-card-render .prophecy-card .card-level{background:#42599a;color:#fff}.structured-card-render .card-abilities{position:absolute;top:47px;right:8px;bottom:32px;left:8px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.structured-card-render .card-ability{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-size:.47rem;font-weight:700;line-height:1.28;overflow-wrap:anywhere}.structured-card-render .card-abilities .card-ability b{color:#805f13;font-size:inherit;font-weight:700;margin:0}.structured-card-render .prophecy-card .card-ability b{color:#274f85}.structured-card-render .card-stat{position:absolute;bottom:8px;padding:2px 4px;border-radius:5px;background:#13253bcc;color:#fff;font-size:.5rem;font-weight:900;line-height:1}.structured-card-render .card-attack{left:8px}.structured-card-render .card-defense{right:8px}.structured-card-render .prophecy-card .card-stat{background:#274f85cc}.structured-card-render .card-stat.stat-buffed{background:#1c3d63d9;color:#7cc0ff}.structured-card-render .card-stat.stat-nerfed{background:#5a2130d9;color:#ff9585}
/* 小卡预览（仅场卡）：比中卡展示更小的字号，只显示等级/名称/图片/技能名(灵力)/攻防。 */
.structured-card-render .mini-card-render .card-title{top:7px;left:6px;right:6px;font-size:.5rem;-webkit-line-clamp:2;line-height:1.12}.structured-card-render .mini-card-render:has(.card-level) .card-title{left:20px}.structured-card-render .mini-card-render:has(.card-element) .card-title{right:20px}.structured-card-render .mini-card-render .card-element{top:6px;right:5px;padding:1px 3px;font-size:.36rem}.structured-card-render .mini-card-render .card-level{top:6px;left:5px;padding:1px 3px;font-size:.36rem}.structured-card-render .mini-card-render .card-abilities{top:30px;right:5px;bottom:30px;left:5px;gap:1px;align-items:center}.structured-card-render .mini-card-render .card-ability{display:block;max-width:100%;font-size:.4rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-card-render .mini-card-render .card-stat{bottom:6px;padding:1px 4px;font-size:.42rem}.structured-card-render .mini-card-render .card-attack{left:50%;right:auto;transform:translateX(calc(-100% - 3px))}.structured-card-render .mini-card-render .card-defense{left:50%;right:auto;transform:translateX(3px)}.structured-card-render .mini-card-render .spirit-points{right:6px;bottom:22px;left:6px}.structured-card-render .card .spirit-points{position:absolute;right:8px;bottom:25px;left:8px;justify-content:center;margin:0}.structured-card-render .full-card-render{height:214px;min-height:214px}.structured-card-render .full-card-render .card-title{top:12px;font-size:.72rem}.structured-card-render .full-card-render .card-level{top:11px;left:10px;font-size:.54rem}.structured-card-render .full-card-render .card-element{top:11px;right:10px;font-size:.5rem}.structured-card-render .full-card-render .card-abilities{top:52px;right:10px;bottom:32px;gap:4px}.structured-card-render .full-card-render .card-ability{-webkit-line-clamp:2;font-size:.55rem;line-height:1.34}.structured-card-render .full-card-render .card-stat{bottom:10px;font-size:.56rem}.structured-card-render .full-card-render .card-attack{left:10px}.structured-card-render .full-card-render .card-defense{right:10px}.structured-card-render .full-card-render .spirit-points{right:10px;bottom:27px;left:10px}.card-operation-note{margin:-12px 0 18px;color:#b9c9e8;font-size:.8rem;line-height:1.45}.structured-card-render .deck-builder-card .card .card-abilities{top:42px;bottom:28px}.structured-card-render .deck-builder-card .card .card-title{top:8px;font-size:.54rem}.structured-card-render .deck-builder-card .card .card-element{font-size:.4rem;padding:1px 3px}.structured-card-render .deck-builder-card .card .card-ability{font-size:.42rem}.structured-card-render .deck-builder-card .card .card-stat{bottom:6px;font-size:.44rem}.structured-card-render .battle-slot-layout .hand-card .card-abilities{top:48px;bottom:33px}.structured-card-render .battle-slot-layout .hand-card .card-title{top:10px}.structured-card-render .battle-slot-layout .hand-card .card-ability{font-size:.47rem}@media(max-width:420px){.structured-card-render .card-title{font-size:.54rem}.structured-card-render .card-ability{font-size:.44rem}.structured-card-render .battle-slot-layout .hand-card .card-title{font-size:.54rem}.structured-card-render .battle-slot-layout .hand-card .card-ability{font-size:.44rem}}
/* 小卡背景图（v0.32）：图片铺满卡面置于底层；标题与卡效文字浮在其上，套半透明浅色文本框。图片缺失时 .card-art 会被移除，卡面自动回到无图外观。 */
.card-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:inherit;z-index:0;pointer-events:none}
.structured-card-render .card:has(.card-art) .card-title{padding:1px 4px;border-radius:6px;background:#f7f9ffc9;box-shadow:0 1px 5px #10203a4d}
.structured-card-render .card:has(.card-art) .card-abilities:not(:empty){align-items:center;justify-content:flex-end;padding:0;background:transparent}
.structured-card-render .card:has(.card-art) .card-ability{width:fit-content;max-width:100%;padding:2px 5px;border-radius:6px;white-space:nowrap;background:#f7f9ffbf}
.structured-card-render .prophecy-card:has(.card-art) .card-ability{background:#eef4ffc4}
.structured-card-render .card:has(.card-art) .card-ability{color:#1b263b}
.structured-card-render .prophecy-card:has(.card-art) .card-ability{color:#102d57}
/* 预言卡：原图居中完整显示，四周以同图拉伸并高斯模糊形成氛围叠底。 */
.structured-card-render .prophecy-art-backdrop{position:absolute;inset:-18px;border-radius:inherit;background-position:center;background-size:cover;filter:blur(12px) saturate(1.18) brightness(.76);opacity:.74;transform:scale(1.12);z-index:0;pointer-events:none}.structured-card-render .prophecy-card .card-art{object-fit:contain;padding:7px;z-index:1}.structured-card-render .card:has(.prophecy-art-backdrop)::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:linear-gradient(180deg,#eef4ff46 0%,transparent 30% 68%,#1b284b48 100%);pointer-events:none}.structured-card-render .card:has(.card-art) .card-title,.structured-card-render .card:has(.card-art) .card-abilities,.structured-card-render .card:has(.card-art) .card-level,.structured-card-render .card:has(.card-art) .card-element,.structured-card-render .card:has(.card-art) .card-stat,.structured-card-render .card:has(.card-art) .spirit-track,.structured-card-render .card:has(.card-art) .spirit-points{z-index:2}
.skill-full-note.skill-choice{display:inline-block}
.card-details-modal section,#card-actions-modal>section{box-sizing:border-box;min-width:0;max-width:100%}

/* 怪物属性标签：卡名行右侧、贴卡边的独立小框（与左上角等级角标镜像）。 */
.structured-card-render .card-element{position:absolute;top:8px;right:8px;z-index:2;padding:2px 4px;border:1px solid currentColor;border-radius:5px;background:transparent;font-size:.44rem;font-weight:900;line-height:1;opacity:.8}
.structured-card-render .card-level{font-size:.54rem;letter-spacing:1px}

/* 怪物通常属性：不显示属性名，词条整体用蓝色（与红色的响应触发条件区分）。 */
.passive-attr{color:#3f8cff;font-weight:700}
/* 三种卡面保持固定卡型；全文仅在卡面下方展开。 */
.structured-card-render .card .card-ability.ability-box{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;flex:0 1 auto;min-height:0;width:100%;max-width:100%;box-sizing:border-box;padding:2px 4px;border:1px solid #687f9b44;border-radius:5px;background:#f7f9f29e;color:#253448e8;line-height:1.4;white-space:normal;font-weight:500;text-align:left}
.structured-card-render .card .card-ability.ability-box b{color:inherit;font-size:inherit}
.structured-card-render .card .card-ability.ability-box.passive-attr{color:#2465c5e8}
.structured-card-render .mini-card-render .card-ability.ability-box{display:block;flex:none;width:fit-content;white-space:nowrap;text-overflow:ellipsis;font-size:.4rem;line-height:1.25;padding:1px 3px}
.structured-card-render .card.mini-card-render .card-ability.ability-box[data-ability-kind="reaction"] > b{color:#d62f3a}
.structured-card-render .mini-card-render.prophecy-card .card-ability.ability-box{display:-webkit-box;white-space:normal;-webkit-line-clamp:2;flex:0 1 auto}
.structured-card-render .full-card-render .card-ability.ability-box{-webkit-line-clamp:3;font-size:.55rem;line-height:1.4;padding:3px 5px}
.structured-card-render .card:has(.ability-box) .card-title{background:#f7f9ff9e;color:#1b263be8}
.structured-card-render .card:has(.ability-box) .reactive-trigger{color:#d62f3ae8}
.card-details-modal,#card-actions-modal{overflow-y:auto}
.card-details-modal>section,#card-actions-modal>section{max-height:calc(100dvh - 40px);overflow-y:auto}
.card-details-modal .full-card-render,#card-actions-modal .full-card-render{flex-shrink:0}
.skill-full-note.ability-box{display:block;white-space:normal;width:100%;box-sizing:border-box;text-align:left;margin:8px 0;padding:10px 12px;border:1px solid #728bad66;border-radius:8px;color:#dbe5f5;line-height:1.6}
.skill-full-note.ability-box.passive-attr{color:#9dc4ff;border-color:#3f8cff88}
.ability-box .reactive-trigger{color:#d62f3a;font-weight:700}
.skill-full-note.ability-box .reactive-trigger{color:#ff858b}
.structured-card-render .card .card-ability.passive-attr,.structured-card-render .card:has(.card-art) .card-ability.passive-attr{color:#2f6fe0}
.deck-builder-card .card .card-skill.passive-attr{color:#4f8fe6}
.skill-full-note.passive-attr{color:#9dc4ff;border-left-color:#3f8cff}.skill-full-note.passive-attr b{color:inherit}
/* 反应属性 / 响应效果：词条整体用红色，与蓝色的通常属性区分。 */
.reaction-attr{color:#e5484d;font-weight:700}
.structured-card-render .card .card-ability.reaction-attr,.structured-card-render .card:has(.card-art) .card-ability.reaction-attr{color:#e5484d}
.deck-builder-card .card .card-skill.reaction-attr{color:#e5484d}
.skill-full-note.reaction-attr{color:#f5787d;border-left-color:#e5484d}.skill-full-note.reaction-attr b{color:inherit}
.reaction-response-text{color:#f5787d;font-weight:600}
/* 多选目标：每一步服务端确认后保留选中态与数量，避免多目标效果退化成连续无提示的单选。 */
.selection-dialog .selection-progress{margin:0 0 14px;color:#b9c9e8;font-size:.86rem}.selection-dialog .selection-progress b{color:#f5cf70;font-size:1.08rem}.selection-option{position:relative}.selection-option-card{padding:0;border:2px solid transparent;background:transparent;overflow:visible}.selection-option-card .selection-card-render{width:132px;min-height:168px}.selection-option-card .selection-check{position:absolute;right:4px;top:4px;z-index:4;padding:3px 7px;border-radius:999px;background:#203a5ee8;color:#dceaff;font-size:.7rem;font-weight:900;box-shadow:0 2px 7px #0008}.selection-option-card .selection-option-label{display:block;width:132px;margin:5px auto 0;color:#b9c9e8;font-size:.7rem;font-weight:700;line-height:1.25;text-align:center}.selection-option.is-selected{cursor:default;filter:none;opacity:1}.selection-option-card.is-selected{border-color:#78d6ad;box-shadow:0 0 0 3px #78d6ad55;border-radius:13px}.selection-option-card.is-selected .selection-check{background:#3d9d76;color:#fff}.selection-confirm{flex-basis:100%;margin-top:4px;background:#f5cf70}.selection-confirm:hover:not(:disabled){transform:translateY(-2px)}
.selection-payment-option{position:relative}.selection-payment-card{border-color:#5c77a8;background:#101a2d}.selection-payment-card:hover:not(:disabled){border-color:#f5cf70}.selection-payment-card:disabled{opacity:.72;cursor:default;filter:saturate(.72)}.selection-payment-count{position:absolute;left:-8px;top:-8px;z-index:5;display:grid;place-items:center;min-width:27px;height:27px;padding:0 6px;border-radius:999px;background:#f5cf70;color:#17223b;font-size:.9rem;font-weight:900;box-shadow:0 3px 10px #0009}.selection-payment-remove{position:absolute;right:-8px;top:-8px;z-index:6;display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid #f5b3a8;border-radius:50%;background:#a63f47;color:#fff;font-size:1.25rem;line-height:1;box-shadow:0 3px 10px #0009}.selection-payment-remove:hover{background:#c9525c;transform:translateY(-2px)}

.structured-card-render .card .card-description{display:block;flex:none;width:100%;box-sizing:border-box;padding:2px 4px;border:1px solid #687f9b44;border-radius:5px;background:#f7f9f29e;color:#253448e8;font-size:.42rem;font-weight:500;line-height:1.4;text-align:left;white-space:normal;overflow-wrap:anywhere}
.structured-card-render .deck-builder-card .card .card-description{font-size:.38rem}
.structured-card-render .card.full-card-render .card-description{font-size:.5rem;padding:3px 5px}
@media(max-width:420px){.structured-card-render .battle-slot-layout .hand-card .card-description{font-size:.4rem}}

.selection-drawn-preview{display:grid;justify-items:center;gap:8px;margin:12px 0 18px}.selection-drawn-preview p{margin:0;color:#b9c9e8;font-size:.86rem}.selection-drawn-preview .selection-card-render{width:160px;height:204px;min-height:204px}.selection-dialog:has(.selection-drawn-preview){max-height:calc(100dvh - 40px);overflow-y:auto}
/* Localized copy expands independently of the compact Chinese card face. */

.deck-builder-card[hidden]{display:none!important}
.deck-search{width:100%;box-sizing:border-box;padding:10px 14px;margin:10px 0;border:1px solid #607caf;border-radius:10px;background:#101a2d;color:#e6efff;font:inherit}
html[lang=en] .card-title{overflow-wrap:anywhere;line-height:1.15;letter-spacing:0}
html[lang=en] .card-element{width:auto;min-width:24px;font-size:9px;padding:1px 3px}
html[lang=en] .deck-builder-card .card{width:160px!important;min-width:160px!important;height:225px!important;min-height:225px!important;max-height:225px!important}
html[lang=en] .deck-builder-cards{grid-template-columns:repeat(auto-fill,minmax(174px,1fr))}
html[lang=en] .card-abilities{overflow-wrap:anywhere;word-break:normal}
html[lang=en] .card-details-modal section{max-height:90vh;overflow-y:auto}
html[lang=en] .deck-builder-card .card-title{font-size:11px;left:22px;right:8px!important;top:9px;-webkit-line-clamp:3}
html[lang=en] .deck-builder-card .card-element{top:43px!important;font-size:9px!important}
html[lang=en] .deck-builder-card .card-abilities{top:65px!important;bottom:30px!important}
html[lang=en] .deck-builder-card .card-ability{font-size:10px!important;-webkit-line-clamp:3!important}
@media(max-width:480px){html[lang=en] .deck-builder-card .card{width:140px!important;min-width:140px!important}html[lang=en] .deck-builder-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 6px}}

/* ── 目标选择抽屉（selectionSheet）────────────────────────────────────────────
   1) 战场不再被全屏遮罩盖住：抽屉贴底，遮罩只轻压暗并拦截战场点击。
   2) 单选与多选各一套视觉：单选靠悬停高亮 + 「点击即执行」，多选带方形选框与计数底栏。
   3) 选框（按钮外框）与卡面同尺寸；卡面看不出的说明走卡底浮层，不再左卡右名。 */
#selection-modal.selection-sheet-host{padding:0}
.selection-sheet{display:flex;flex-direction:column;width:100%;max-height:min(62vh,540px);padding:0;text-align:center;background:#17223b;border:2px solid #f5cf70;border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -18px 48px #000a}
#selection-modal.selection-sheet-host[data-enter="1"] .selection-sheet{animation:selection-sheet-in .22s ease-out}
@keyframes selection-sheet-in{from{transform:translateY(100%)}to{transform:none}}
.selection-sheet-head{display:block;flex:0 0 auto;margin:0;padding:13px 20px 9px}
.selection-sheet-head h2{margin:4px 0 0;font-size:1.1rem}
.selection-sheet-hint{margin:5px 0 0;color:#8fa6cc;font-size:.76rem}
.selection-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 20px 14px}
.selection-sheet-body .selection-options{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.selection-sheet-body .selection-drawn-preview{margin:0 0 14px}
.selection-sheet-foot{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:center;padding:11px 20px calc(11px + env(safe-area-inset-bottom));border-top:1px solid #3a4d78;background:#131d33}
.selection-sheet-foot .selection-progress{margin:0}
.selection-sheet-foot .selection-confirm{flex:0 0 auto;margin:0}
.selection-sheet .selection-countdown{flex-basis:100%;margin:0!important}
/* 选框 = 卡面：按钮不再是 inline-flex 行盒，卡名浮层绝对定位，不参与尺寸计算。 */
.selection-sheet .selection-option-card{position:relative;display:block;padding:0;border:2px solid transparent;border-radius:13px;transition:transform .14s,border-color .14s,box-shadow .14s}
.selection-sheet .selection-option-card .selection-card-render{display:block;margin:0}
.selection-sheet .selection-option-label{position:absolute;left:0;right:0;bottom:0;z-index:4;width:auto;margin:0;padding:4px 6px;border-radius:0 0 11px 11px;background:#0a1120e6;color:#dbe6fb;font-size:.66rem;font-weight:700;line-height:1.2}
/* 单选：无选框、无勾选标记，悬停抬起表示「点下去就执行」。 */
.selection-sheet[data-mode="single"] .selection-option-card:hover:not(:disabled){border-color:#f5cf70;transform:translateY(-3px);box-shadow:0 8px 18px #0007}
/* 多选：虚线待选框 + 左上角方形勾选位 + 已选实线；已选卡压暗表示已锁定。 */
.selection-sheet[data-mode="multi"] .selection-option-card{border-color:#5a739f;border-style:dashed}
.selection-sheet[data-mode="multi"] .selection-option-card:hover:not(:disabled){border-color:#9fc0ea;transform:translateY(-3px)}
/* 勾选位铺满整张卡：卡面两个上角已被等级与元素占用，改成整卡浮层就不会压住卡面信息，
   「选框 = 卡面」也一眼可读。未选时透明，只留卡外的虚线框。 */
.selection-sheet[data-mode="multi"] .selection-option-card .selection-check{position:absolute;left:0;right:0;top:0;bottom:0;z-index:5;display:grid;place-items:center;width:auto;height:auto;padding:0;border-radius:11px;background:transparent;color:#fff;font-size:2.4rem;font-weight:900;line-height:1;text-shadow:0 2px 8px #000c;box-shadow:none;pointer-events:none}
.selection-sheet[data-mode="multi"] .selection-option-card.is-selected{border-style:solid;border-color:#78d6ad;box-shadow:0 0 0 3px #78d6ad55}
.selection-sheet[data-mode="multi"] .selection-option-card.is-selected .selection-check{background:#0b2d21a8}
@media(max-width:480px){.selection-sheet{max-height:min(68vh,520px)}.selection-sheet-body{padding:10px 12px 12px}.selection-sheet-body .selection-options{gap:9px}.selection-sheet .selection-card-render{width:108px;min-height:138px}}
/* 暂存式多选：已勾选项可再点取消；选满上限后未勾选项置灰；确认按钮受下限约束。 */
.selection-sheet .selection-option.is-selected{cursor:pointer}
.selection-sheet .selection-option.is-full{opacity:.5}
.selection-sheet .selection-progress-slot{display:inline-flex;align-items:center}
.selection-sheet[data-mode="multi"] .selection-option:not(.selection-option-card) .selection-check{position:static;display:inline;width:auto;height:auto;margin-right:5px;padding:0;border-radius:0;background:none;font-size:inherit;text-shadow:none}
.selection-sheet .selection-stage-confirm:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.6);transform:none}
/* 灵力分摊：卡片按钮只做“再加一点”，撤回键常驻卡角，计数与文案由本地暂存驱动。 */
.selection-sheet .selection-payment-option{position:relative;display:inline-block}
.selection-sheet .selection-payment-card:disabled{opacity:.72;cursor:default;filter:saturate(.75)}
.selection-sheet .selection-stage-unpay{position:absolute;right:-8px;top:-8px;z-index:6;display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid #f5b3a8;border-radius:50%;background:#a63f47;color:#fff;font-size:1.25rem;line-height:1;box-shadow:0 3px 10px #0009}
.selection-sheet .selection-stage-unpay:hover{background:#c9525c;transform:translateY(-2px)}
.selection-sheet .selection-stage-unpay[hidden]{display:none}

/* 选项里的盖伏卡：卡背 + 卡背上的卡位说明 */
.selection-option-card .selection-card-back{position:relative;display:flex;align-items:flex-end;justify-content:center;width:132px;min-height:168px;padding:8px;border-color:#d6b65d}
.selection-card-back .selection-back-note{display:block;width:100%;padding:4px 5px;border-radius:7px;background:#0d1729e0;color:#e9f1ff;font-size:.6rem;font-weight:800;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.selection-card-back::after{position:absolute;top:calc(50% - 20px);left:0;right:0;margin:0;text-align:center}
/* 响应弹窗：触发卡与发动卡的小卡预览 */
.reaction-preview{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:2px 0 14px}
.reaction-preview-card{margin:0;display:grid;justify-items:center;gap:5px}
.reaction-preview-card figcaption{color:#b9c9e8;font-size:.72rem;font-weight:700}
.reaction-preview-card .mini-card-render{width:96px;min-height:122px;margin:0;pointer-events:none}

/* Medium-card inspection and separate selection controls. */
#selection-modal .selection-card-item{display:flex;flex-direction:column;align-items:center;gap:8px;width:160px}
#selection-modal .selection-inspect{display:block;padding:0;border:0;background:transparent;cursor:zoom-in}
#selection-modal .selection-inspect .selection-card-render{width:160px;height:204px;min-height:204px;margin:0}
#selection-modal .selection-below-card{width:100%;min-height:36px;position:static}
#selection-modal .selection-card-item .selection-option-label,#selection-modal .selection-card-item .selection-payment-count,#selection-modal .selection-card-item .selection-stage-unpay,#selection-modal .selection-card-item .selection-payment-remove{position:static;inset:auto;transform:none;margin:0}
#selection-modal .selection-card-item .selection-stage-unpay,#selection-modal .selection-card-item .selection-payment-remove{width:100%;min-height:32px}
#selection-modal section[hidden]{display:none!important}
