.mengsan-hand-zone-shuying { --mengsan-hand-gold: #d8ba83; --mengsan-hand-jade: #234844; --mengsan-hand-ink: #fff1cb; } .mengsan-hand-scroll-shuying { overflow: visible !important; left: 0 !important; top: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; padding: 0 !important; pointer-events: none; scrollbar-width: thin; scrollbar-color: #d8ba83 #234844; overscroll-behavior-x: contain; touch-action: none; } .mengsan-hand-root-shuying { overflow: visible !important; } .mengsan-hand-scroll-shuying:focus-visible { outline: 2px solid #d8ba83; outline-offset: -2px; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying { position: relative !important; display: block !important; width: 100% !important; height: 100% !important; left: 0 !important; top: auto !important; bottom: 0 !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box; pointer-events: none; overflow: visible !important; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card { position: absolute !important; width: 112px !important; height: 156px !important; left: 0 !important; right: auto !important; top: 100% !important; bottom: auto !important; margin: 0 !important; transform-origin: 50% 100% !important; transform: translate(var(--mengsan-fan-x, 0px), var(--mengsan-fan-y, -128px)) rotate(var(--mengsan-fan-angle, 0deg)) !important; z-index: var(--mengsan-fan-z, 1) !important; transition: transform 160ms cubic-bezier(.2,.7,.3,1), box-shadow 160ms ease-out !important; pointer-events: auto; touch-action: none; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.selected { transform: translate(var(--mengsan-fan-x, 0px), calc(var(--mengsan-fan-y, -128px) - 20px)) rotate(var(--mengsan-fan-angle, 0deg)) !important; outline: 2px solid var(--mengsan-hand-gold); outline-offset: -2px; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.mengsan-hand-hover-shuying { transform: translate(var(--mengsan-fan-x, 0px), calc(var(--mengsan-fan-y, -128px) - 62px)) rotate(0deg) scale(1.35) !important; z-index: 220 !important; box-shadow: 0 0 0 2px #b6e8de, 0 0 14px #68b6a58c, 0 12px 22px #0009; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.mengsan-hand-drag-shuying { top: 0 !important; transform: translate(var(--mengsan-drag-x), var(--mengsan-drag-y)) rotate(0deg) !important; z-index: 240 !important; pointer-events: none !important; transition: none !important; box-shadow: 0 0 0 2px #b6e8de, 0 0 14px #68b6a58c, 0 12px 22px #0009; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.mengsan-hand-free-drag-shuying { transform: translate(var(--mengsan-drag-x), var(--mengsan-drag-y)) rotate(0deg) scale(1.22) !important; transform-origin: 50% 50% !important; } .mengsan-hand-aim-shuying { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 1000; pointer-events: none; overflow: visible; } .mengsan-hand-aim-shuying > path { fill: none; stroke: rgb(250, 220, 140); stroke-width: 2.6; stroke-linecap: round; filter: drop-shadow(0 0 2px #f5d25b); } /* 只在梦三手牌挂载期间隐藏十周年阶段、等待响应和对方思考图片。 */ body.mengsan-hand-ui-shuying [style*="extension/十周年UI/ui/assets/lbtn/tips/"]:is( [style*="/tips/hhks."], [style*="/tips/zbjd."], [style*="/tips/pdjd."], [style*="/tips/mpjd."], [style*="/tips/cpjd."], [style*="/tips/qpjd."], [style*="/tips/jsjd."], [style*="/tips/hhjs."], [style*="/tips/ddxy."], [style*="/tips/dfsk."] ) { display: none !important; } body.mengsan-hand-ui-shuying :is( .mengsan-hand-controls-hidden-shuying, .mengsan-hand-submitted-control-shuying ) { visibility: hidden !important; pointer-events: none !important; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.removing, .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card.display-none { display: none !important; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card > .info, .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card > .name { transform: none !important; } .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card > .info > span { display: inline !important; } .mengsan-hand-zone-shuying > .card > .mengsan-hand-cost-shuying, .mengsan-hand-zone-shuying > .card > .mengsan-hand-upgrade-shuying { position: absolute !important; display: grid !important; place-items: center; z-index: 8 !important; margin: 0 !important; box-sizing: border-box; pointer-events: none; writing-mode: horizontal-tb !important; font: 700 13px/1 "Microsoft YaHei", sans-serif; box-shadow: 0 2px 4px #0008; } .mengsan-hand-zone-shuying > .card > .mengsan-hand-cost-shuying { top: 48% !important; left: 3px !important; width: 24px; height: 24px; border: 1px solid var(--mengsan-hand-gold); border-radius: 50%; background: var(--mengsan-hand-jade); color: var(--mengsan-hand-ink); } .mengsan-hand-zone-shuying > .card > .mengsan-hand-cost-shuying::before { content: attr(data-mengsan-cost); } .mengsan-hand-zone-shuying > .card > .mengsan-hand-upgrade-shuying { /* 扇形叠牌露出左侧:角标排在花色下、费用上,不抬高整张牌的层级。 */ top: calc(max(48%, 64px) - 25px) !important; left: 3px !important; right: auto !important; white-space: nowrap; width: 26px; height: 20px; border: 1px solid #86bd85; border-radius: 4px; background: #214f36; color: #f5ffea; } /* 只为带强化角标的真实手牌预留左侧信息栏,避免窄屏挤压。 */ .mengsan-hand-zone-shuying > .card:has(> .mengsan-hand-upgrade-shuying) > .mengsan-hand-cost-shuying { top: max(48%, 64px) !important; } .mengsan-hand-zone-shuying > .card:has(> .mengsan-hand-upgrade-shuying) > .suit-num { top: 6px !important; } @media (max-width: 640px), (max-height: 500px) { .mengsan-hand-zone-shuying > .card:has(> .mengsan-hand-upgrade-shuying) > .suit-num { top: 4px !important; font-size: 20px !important; line-height: 16px !important; } } .mengsan-hand-zone-shuying > .card > .mengsan-hand-upgrade-shuying::before { content: "+" attr(data-mengsan-upgrade); } @media (max-width: 640px), (max-height: 500px) { .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card { width: 82px !important; height: 114px !important; } } @media (prefers-reduced-motion: reduce) { .mengsan-hand-zone-shuying.mengsan-hand-layout-shuying > .card { transition: none !important; } } /* 按实际卡牌定义标记本地完整立绘,不再维护牌名清单;只协调梦三手牌原生节点。 */ .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) { background-size: cover !important; background-position: center !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > :is(.name, .top-name) { display: block !important; top: auto !important; bottom: 8px !important; left: auto !important; right: 8px !important; width: auto !important; height: auto !important; padding: 3px 6px !important; margin: 0 !important; writing-mode: horizontal-tb !important; -webkit-writing-mode: horizontal-tb !important; font-size: 16px !important; line-height: 20px !important; letter-spacing: 1px !important; color: #fff1cb !important; text-shadow: 0 1px 2px #000 !important; background: #231b17e6 !important; border-radius: 3px; z-index: 7 !important; pointer-events: none; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > :is(.name, .top-name) br { display: none; } /* 十周年名称有文字时优先使用;空节点不能遮掉原生名称。 */ .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip):has(> .top-name:not(:empty)) > .name { display: none !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > :is(.info:not(.gaintag), .suit-num) { top: 6px !important; left: 6px !important; right: auto !important; bottom: auto !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 2px 4px !important; font-size: 18px !important; line-height: 18px !important; letter-spacing: 0 !important; color: #231b17 !important; text-shadow: none !important; background: #fff1cbe6 !important; border-radius: 3px; z-index: 7 !important; pointer-events: none; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"] > .image, .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"] > .info:empty { display: none !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:is([data-suit="heart"], [data-suit="diamond"]):not(.infohidden):not(.infoflip) > :is(.info:not(.gaintag), .suit-num) { color: #a52219 !important; } /* 强化卡牌的完整卡面样式优先级更高,窄屏同样为角标留出空隙。 */ @media (max-width: 640px), (max-height: 500px) { .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip):has(> .mengsan-hand-upgrade-shuying) > .suit-num { top: 4px !important; padding: 0 2px !important; font-size: 18px !important; line-height: 16px !important; } } /* 本地完整卡面不绘制空标题或重复的花色信息条。 */ .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > :is(.name, .top-name):empty { display: none !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:has(> .suit-num:not(:empty)) > .info:not(.gaintag) { display: none !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > .suit-num > .suit { font-size: inherit !important; line-height: inherit; } /* 保留原生词缀内容,覆盖十周年 fullimage 的字号归零,避开费用和名称。 */ .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > .gaintag.info:not(:empty) { display: block !important; top: auto !important; bottom: 36px !important; left: 31px !important; right: 5px !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 2px 3px !important; box-sizing: border-box; font-size: 12px !important; line-height: 14px !important; letter-spacing: 0 !important; white-space: normal !important; overflow-wrap: anywhere; overflow: visible !important; background: #231b17e6 !important; color: #fff1cb !important; text-shadow: none !important; border: 1px solid #d8ba83 !important; border-radius: 3px; z-index: 6 !important; pointer-events: none; } /* 长牌名由翻译长度自动标记,新增牌不需要再抄写 CSS 名单。 */ .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"][data-mengsan-long-name="true"]:not(.infohidden):not(.infoflip) > :is(.name, .top-name) { font-size: 12px !important; letter-spacing: 0 !important; white-space: nowrap !important; } @media (max-width: 640px), (max-height: 500px) { .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"][data-mengsan-long-name="true"]:not(.infohidden):not(.infoflip) > :is(.name, .top-name) { font-size: 10px !important; padding: 2px 4px !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-local-art="full"]:not(.infohidden):not(.infoflip) > .gaintag.info:not(:empty) { font-size: 10px !important; line-height: 12px !important; } } /* Infection only; keep cost/name above it and leave native card::after alone. */ .mengsan-infection-border-shuying { display: none; } .mengsan-hand-zone-shuying > .card[data-card-name="mengsan_infection_shuying"]:not(.infohidden):not(.infoflip) > .mengsan-infection-border-shuying { display: block; z-index: 5; position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border-radius: inherit; pointer-events: none; background-image: url("../../assets/card-overlays/infection-sprite.webp"); /* 30 source frames, six columns/five rows, 192x260 per cell. */ background-size: 600% 500%; background-position: 0% 0%; background-repeat: no-repeat; animation: mengsan-infection-frames-shuying 2s steps(1, end) infinite; } @keyframes mengsan-infection-frames-shuying { 0% { background-position: 0% 0%; } 3.333333% { background-position: 20% 0%; } 6.666667% { background-position: 40% 0%; } 10% { background-position: 60% 0%; } 13.333333% { background-position: 80% 0%; } 16.666667% { background-position: 100% 0%; } 20% { background-position: 0% 25%; } 23.333333% { background-position: 20% 25%; } 26.666667% { background-position: 40% 25%; } 30% { background-position: 60% 25%; } 33.333333% { background-position: 80% 25%; } 36.666667% { background-position: 100% 25%; } 40% { background-position: 0% 50%; } 43.333333% { background-position: 20% 50%; } 46.666667% { background-position: 40% 50%; } 50% { background-position: 60% 50%; } 53.333333% { background-position: 80% 50%; } 56.666667% { background-position: 100% 50%; } 60% { background-position: 0% 75%; } 63.333333% { background-position: 20% 75%; } 66.666667% { background-position: 40% 75%; } 70% { background-position: 60% 75%; } 73.333333% { background-position: 80% 75%; } 76.666667% { background-position: 100% 75%; } 80% { background-position: 0% 100%; } 83.333333% { background-position: 20% 100%; } 86.666667% { background-position: 40% 100%; } 90% { background-position: 60% 100%; } 93.333333% { background-position: 80% 100%; } 96.666667% { background-position: 100% 100%; } 100% { background-position: 100% 100%; } } @media (prefers-reduced-motion: reduce) { .mengsan-hand-zone-shuying > .card[data-card-name="mengsan_infection_shuying"]:not(.infohidden):not(.infoflip) > .mengsan-infection-border-shuying { animation: none; background-position: 0% 0%; } } /* 稀有度是独立装饰层,不占用原生 card::after,也不改变尺寸、命中区或立绘。 */ .mengsan-hand-rarity-shuying { display: none; pointer-events: none; } .mengsan-hand-zone-shuying > .card[data-mengsan-rarity]:not([data-mengsan-rarity="pending"]):not(.infohidden):not(.infoflip) > .mengsan-hand-rarity-shuying { display: block; position: absolute; inset: 0; z-index: 4; border-radius: inherit; margin: 0; padding: 0; width: 100%; height: 100%; box-shadow: inset 0 0 0 2px var(--ms-rarity-accent), inset 0 0 0 4px var(--ms-rarity-dark); background: linear-gradient(90deg, var(--ms-rarity-dark), var(--ms-rarity-accent), var(--ms-rarity-metal)) top / 100% 5px no-repeat; } .mengsan-hand-zone-shuying > .card[data-mengsan-rarity]:not([data-mengsan-rarity="pending"]):not(.infohidden):not(.infoflip) > :is(.name, .top-name) { background: var(--ms-rarity-accent) !important; color: var(--ms-rarity-ink) !important; text-shadow: none !important; border-color: var(--ms-rarity-metal) !important; } .mengsan-hand-zone-shuying > .card[data-mengsan-rarity]:not([data-mengsan-rarity="pending"]):not(.infohidden):not(.infoflip) > .mengsan-hand-cost-shuying { background: var(--ms-rarity-dark); color: var(--ms-rarity-metal); border-color: var(--ms-rarity-accent); }