/* 3D 牌桌（js/3d-cards.js）：翻牌配对 / 红黑骑巴士 */
.cd-wrap { margin-top: 8px; margin-bottom: 4px; }
.g3-stage.cd-mem { aspect-ratio: 1 / 1.08; max-height: calc(100svh - 290px); min-height: 340px; }
.g3-stage.cd-bus { aspect-ratio: 1 / .74; max-height: 46svh; min-height: 250px; }
.g3-stage.cd-mem, .g3-stage.cd-bus { background: radial-gradient(90% 70% at 50% 40%, #2a0a17, #0b0407 80%); box-shadow: inset 0 0 0 1px #d9b26f22; }
.g3-stage.cd-red { animation: cdred .7s ease-out; }
@keyframes cdred { 0% { box-shadow: inset 0 0 0 2px #ff2050, inset 0 0 90px 10px #ff1f4fcc; } 100% { box-shadow: inset 0 0 0 1px #d9b26f22; } }
#cdMemHud .turn, #cdBusHead .turn { margin-top: 8px; }
/* 屏幕阅读器 / 键盘用的隐形按钮（也是 exMemFlip 判断「还在这个画面」的依据） */
.cd-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.cd-bot { transition: opacity .35s var(--ease, ease), transform .35s var(--ease, ease); }
.cd-bot.wait { opacity: 0; transform: translateY(10px); pointer-events: none; }
