/**
 * 卡牌顯示統一規格（參考 limited_777 · 832×1248 · 2:3 完整卡框）
 * 全站立繪：object-fit contain · 不裁切四邊
 */
:root {
    --void-card-aspect: 2 / 3;
    --void-card-radius: 0;
    --void-card-bg: #06040c;
    /* 卡背由 js/card-art.js · applyVoidCardBackSkin 覆寫帶版本號 */
    --void-card-back-url: url('images/cards/Gemini_Generated_Image_ddzu1vddzu1vddzu.jpg');
    --pc-card-back-url: var(--void-card-back-url);
}

.void-card-img,
.catalog-tile-img,
.modal-art-full-img,
.catalog-card-mount .card-art-img,
.bag-card-mount .card-art-img,
.lb-modal-card-mount .card-art-img,
.showcase-slot .card-art-img,
.gacha-view .card-art-img,
.pull-cinema-root .card-art-img,
#pull-result-mount .card-art-img,
#gacha-age-overlay .age-tile-art,
.card-face.has-art .card-art-img {
    object-fit: contain !important;
    object-position: center center !important;
}

#gacha-age-overlay .gacha-age-card-slot .card-art-img {
    object-fit: cover !important;
    object-position: center top !important;
}

/* ── 聖殿封印認證 · 鎖在卡牌容器內左下（僅 absolute，禁止 fixed） ── */
.card-temple-seal {
    position: absolute !important;
    bottom: 15px;
    left: 15px;
    top: auto !important;
    right: auto !important;
    transform: none !important;
    z-index: 5;
    display: flex;
    line-height: normal;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    max-width: calc(100% - 30px);
    padding: 4px 8px 5px;
    border-radius: 6px;
    border: 1px solid rgba(255, 215, 0, 0.65);
    background: linear-gradient(145deg, rgba(8, 4, 18, 0.88), rgba(24, 10, 40, 0.78));
    box-shadow:
        0 0 12px rgba(255, 215, 0, 0.35),
        0 0 20px rgba(127, 0, 255, 0.25);
    pointer-events: none;
    line-height: 1.2;
}

.card-temple-seal__title {
    display: block;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: #ffe9a8;
    text-shadow:
        0 0 8px rgba(255, 215, 0, 0.85),
        0 1px 2px rgba(0, 0, 0, 0.9);
}

.card-temple-seal__desc {
    display: block;
    font-size: 6px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: rgba(255, 235, 200, 0.92);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
}

.card-temple-seal--compact {
    padding: 3px 6px 4px;
    max-width: calc(100% - 16px);
}

.card-temple-seal--compact .card-temple-seal__title {
    font-size: 7px;
    line-height: 1.25;
}

.card-temple-seal--compact .card-temple-seal__desc {
    display: none;
}

/* 定位基線：卡牌外框／舞台／卡面（子元素 absolute 依附卡牌，不跟視窗 fixed） */
.card-3d-wrap,
.card-face,
.legend-card .legend-mount {
    position: relative;
}

.void-card-stage .card-temple-seal {
    bottom: 15px;
    left: 15px;
    z-index: 5;
}

.card-face.card-face--art-only .card-temple-seal,
.card-3d-wrap.has-art-only .card-temple-seal {
    bottom: 15px;
    left: 15px;
}

.card-3d-wrap.small .card-temple-seal {
    bottom: 15px;
    left: 12px;
    max-width: calc(100% - 24px);
}

.card-3d-wrap.small.card-showcase-art .card-temple-seal {
    bottom: 15px;
    left: 12px;
}

/* ── 外框：全站固定 2:3，與參考卡一致 ── */
.void-card-frame,
.catalog-card-art.catalog-card-art--frame,
.catalog-card-art.void-card-frame,
.bag-card-visual.bag-card-visual--frame,
.bag-card-visual.void-card-frame,
.showcase-card-art.showcase-card-art--frame,
.catalog-card-art-modal {
    position: relative;
    width: 100%;
    aspect-ratio: var(--void-card-aspect);
    min-height: 0;
    overflow: visible;
    border-radius: var(--void-card-radius);
    background: transparent;
    line-height: 0;
    transform-style: flat;
    perspective: none;
}

.catalog-card-art,
.bag-card-visual,
.showcase-card-art {
    overflow: visible;
    background: transparent;
    box-shadow: none;
}

.catalog-card--has-art .catalog-card-art,
.bag-card-tile--has-art .bag-card-visual {
    overflow: hidden;
    flex-shrink: 0;
    background: var(--void-card-bg);
}

.showcase-slot--has-art .showcase-card-art {
    overflow: visible;
    flex-shrink: 0;
    background: transparent;
}

.catalog-card--has-art .void-card-stage:not(.catalog-card-tile),
.bag-card-tile--has-art .void-card-stage {
    overflow: hidden;
    background: var(--void-card-bg);
}


/* 圖鑑格：2:3 框 + contain（勿用 --native 脫離格線） */
.catalog-card-art--frame .void-card-stage {
    overflow: hidden;
    background: var(--void-card-bg);
}

.catalog-card-art--frame .void-card-img,
.catalog-card-art--frame .catalog-tile-img {
    object-fit: contain !important;
    object-position: center center !important;
}

/* ── 舞台：不旋轉卡面（防吃邊） ── */
.void-card-stage,
.card-item.catalog-tile-3d {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
    cursor: pointer;
    transform: none;
    transform-style: flat;
    z-index: 1;
}

.void-card-stage:not(.catalog-tile-3d--modal):not(.card-holo-tilt),
.card-item.catalog-tile-3d:not(.catalog-tile-3d--modal):not(.card-holo-tilt) {
    transform: none;
}

.void-card-stage.card-holo-tilt,
.card-item.catalog-tile-3d.card-holo-tilt {
    transform-style: preserve-3d;
    will-change: transform;
}

.void-card-stage.card-holo-tilt.is-tilt-rest,
.card-item.catalog-tile-3d.card-holo-tilt.is-tilt-rest {
    transition: transform 0.42s cubic-bezier(0.23, 1, 0.32, 1);
}

/* ── 立繪：contain 完整卡框（不裁四邊） ── */
.void-card-img,
.catalog-tile-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    transform: none;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

/* 陣容／爬塔／星神 picker · lazy <img> 填滿 art 區 */
.card-picker-art-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.sgb-pick-card__art,
.apex-pick__art,
.apex-slot__art,
.abyss-pick__art,
.abyss-slot__art,
.sgb-strip-card__art {
    overflow: hidden;
}

/* ── 全息：只跟隨滑鼠，不旋轉底圖 ── */
.void-card-holo,
.card-3d-overlay,
.catalog-tile-holo {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    transform: none;
}

/* 斜向彩虹漸層 + color-dodge · 雷射膜（與 .card-face::before 同規格） */
.void-card-holo::before,
.card-3d-overlay::before,
.catalog-tile-holo::before,
.card-face.fx-holo::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        115deg,
        transparent 30%,
        rgba(255, 0, 128, 0.22) 43%,
        rgba(0, 255, 255, 0.28) 50%,
        rgba(255, 255, 0, 0.22) 57%,
        transparent 70%
    );
    background-size: 250% 250%;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    mix-blend-mode: color-dodge;
    opacity: calc(0.28 * var(--holo-intensity, 1));
    transition: opacity 0.2s ease, background-position 0.08s linear;
    pointer-events: none;
}

.catalog-tile-3d--static .catalog-tile-holo::before,
.market-card-mount .catalog-tile-holo::before {
    animation: none;
    opacity: 0.22;
}

.catalog-tile-3d--modal.is-tilt-active .catalog-tile-holo::before,
.void-card-stage.card-holo-tilt.is-tilt-active .void-card-holo::before,
.modal-inner--zoom .card-3d-wrap.is-tilt-active .card-face::before {
    animation: void-holo-breathe 5s ease-in-out infinite;
}

.catalog-tile-holo.fx-prism::before,
.card-face.fx-prism::before {
    background: linear-gradient(
        125deg,
        transparent 28%,
        rgba(180, 100, 255, 0.3) 45%,
        rgba(0, 255, 200, 0.25) 52%,
        rgba(255, 120, 220, 0.28) 60%,
        transparent 72%
    );
}

.catalog-tile-holo.fx-rainbow::before,
.card-face.fx-rainbow::before {
    background: linear-gradient(
        115deg,
        rgba(255, 0, 128, 0.15) 20%,
        rgba(255, 200, 0, 0.2) 40%,
        rgba(0, 255, 180, 0.22) 55%,
        rgba(120, 80, 255, 0.2) 70%,
        transparent 85%
    );
}

.void-card-holo::after,
.catalog-tile-holo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        circle at var(--holox, 50%) var(--holoy, 50%),
        rgba(255, 255, 255, 0.2) 0%,
        rgba(192, 132, 252, 0.08) 22%,
        transparent 55%
    );
    mix-blend-mode: overlay;
    opacity: calc(0.35 * var(--holo-intensity, 1));
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.card-item.card-holo-live.is-tilt-active .void-card-holo::before,
.card-item.card-holo-live.is-tilt-active .card-3d-overlay::before,
.card-holo-tilt.is-tilt-active .void-card-holo::before {
    animation: none;
    opacity: calc(0.52 * var(--holo-intensity, 1));
}

.card-item.card-holo-live.is-tilt-active .void-card-holo::after,
.card-item.card-holo-live.is-tilt-active .catalog-tile-holo::after {
    opacity: calc(0.55 * var(--holo-intensity, 1));
}

.catalog-tile-3d--modal {
    transform-style: preserve-3d;
    will-change: transform;
    contain: layout style;
}

.catalog-tile-3d--modal.card-holo-tilt {
    transition: transform 0.1s ease-out;
}

.catalog-tile-3d--modal.is-tilt-rest {
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}

@keyframes void-holo-breathe {
    0%, 100% { opacity: 0.12; }
    50% { opacity: 0.22; }
}

/* ── MR / UR · 彩虹漸變掃光（登入主打 / 卡牌一覽共用） ── */
.void-rainbow-shine-wrap {
    position: relative;
    overflow: hidden;
}

.void-rainbow-shine-wrap::after {
    content: "";
    position: absolute;
    inset: -18%;
    z-index: 5;
    pointer-events: none;
    background: linear-gradient(
        115deg,
        transparent 38%,
        rgba(255, 255, 255, 0.08) 44%,
        rgba(255, 220, 120, 0.22) 48%,
        rgba(0, 255, 255, 0.28) 50%,
        rgba(255, 100, 220, 0.22) 52%,
        rgba(180, 255, 160, 0.14) 56%,
        transparent 62%
    );
    background-size: 220% 220%;
    mix-blend-mode: soft-light;
    animation: voidRainbowCardShine 3.8s ease-in-out infinite;
}

.void-card-holo.void-rainbow-holo::before,
.card-face.void-rainbow-holo::before {
    background: linear-gradient(
        115deg,
        rgba(255, 0, 180, 0.1) 0%,
        rgba(255, 215, 0, 0.22) 18%,
        rgba(120, 255, 200, 0.24) 36%,
        rgba(0, 240, 255, 0.3) 50%,
        rgba(200, 120, 255, 0.24) 68%,
        rgba(255, 80, 160, 0.2) 82%,
        rgba(255, 215, 0, 0.14) 100%
    );
    background-size: 300% 300%;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    mix-blend-mode: soft-light;
    opacity: 0.5;
    animation: voidRainbowHoloSweep 5s linear infinite !important;
}

.void-card-holo.void-rainbow-holo::after {
    background: radial-gradient(
        circle at var(--holox, 50%) var(--holoy, 50%),
        rgba(255, 255, 255, 0.28) 0%,
        rgba(0, 255, 255, 0.1) 28%,
        transparent 58%
    );
    mix-blend-mode: overlay;
    opacity: 0.32;
    animation: voidRainbowHoloGlow 4.5s ease-in-out infinite;
}

/* 彩虹卡 · 滑鼠懸停：彩光跟隨游標（覆蓋自動掃光 animation !important） */
.card-holo-live.is-tilt-active .void-card-holo.void-rainbow-holo::before,
.card-holo-tilt.is-tilt-active .void-card-holo.void-rainbow-holo::before,
.void-card-stage.is-tilt-active .void-card-holo.void-rainbow-holo::before,
.card-face.void-rainbow-holo.is-tilt-active::before {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    opacity: calc(0.62 * var(--holo-intensity, 1));
    transition: background-position 0.06s linear, opacity 0.15s ease;
}

.card-holo-live.is-tilt-active .void-card-holo.void-rainbow-holo::after,
.card-holo-tilt.is-tilt-active .void-card-holo.void-rainbow-holo::after,
.void-card-stage.is-tilt-active .void-card-holo.void-rainbow-holo::after {
    animation: none !important;
    background: radial-gradient(
        circle at var(--holox, 50%) var(--holoy, 50%),
        rgba(255, 255, 255, 0.34) 0%,
        rgba(0, 255, 255, 0.14) 26%,
        transparent 56%
    );
    opacity: calc(0.52 * var(--holo-intensity, 1));
}

.void-card-stage.is-tilt-active.void-rainbow-shine-wrap::after,
.card-holo-live.is-tilt-active.void-rainbow-shine-wrap::after {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    opacity: calc(0.52 * var(--holo-intensity, 1));
}

/* 小格（圖鑑 / 背包 / 交易所等）：中等強度 · 窄光束掃過 */
.void-card-stage.void-rainbow-holo-active--grid.void-rainbow-shine-wrap::after,
.catalog-card--rainbow-holo .void-rainbow-shine-wrap::after {
    mix-blend-mode: soft-light;
    background: linear-gradient(
        115deg,
        transparent 40%,
        rgba(255, 255, 255, 0.15) 46%,
        rgba(255, 220, 120, 0.28) 49%,
        rgba(0, 255, 255, 0.32) 50%,
        rgba(255, 120, 220, 0.26) 51%,
        rgba(255, 255, 255, 0.12) 54%,
        transparent 60%
    );
    background-size: 200% 200%;
    animation: voidRainbowCardShine 4.2s ease-in-out infinite;
}

.void-card-stage.void-rainbow-holo-active--grid .void-card-holo.void-rainbow-holo::before,
.catalog-card--rainbow-holo .void-card-holo.void-rainbow-holo::before {
    mix-blend-mode: overlay;
    opacity: 0.4;
    animation-duration: 5s !important;
}

.void-card-stage.void-rainbow-holo-active--grid .void-card-holo.void-rainbow-holo::after,
.catalog-card--rainbow-holo .void-card-holo.void-rainbow-holo::after {
    display: block;
    mix-blend-mode: soft-light;
    opacity: 0.22;
    background: radial-gradient(
        ellipse 80% 60% at 50% 45%,
        rgba(255, 255, 255, 0.2) 0%,
        rgba(180, 120, 255, 0.08) 40%,
        transparent 70%
    );
    animation: voidRainbowHoloGlow 4.5s ease-in-out infinite;
}

.void-card-stage.void-rainbow-holo-active--grid.is-tilt-active .void-card-holo.void-rainbow-holo::before,
.catalog-card--rainbow-holo .void-card-stage.is-tilt-active .void-card-holo.void-rainbow-holo::before {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    opacity: calc(0.58 * var(--holo-intensity, 1));
}

.void-card-stage.void-rainbow-holo-active--grid.is-tilt-active .void-card-holo.void-rainbow-holo::after,
.catalog-card--rainbow-holo .void-card-stage.is-tilt-active .void-card-holo.void-rainbow-holo::after {
    animation: none !important;
    background: radial-gradient(
        circle at var(--holox, 50%) var(--holoy, 50%),
        rgba(255, 255, 255, 0.3) 0%,
        rgba(180, 120, 255, 0.1) 28%,
        transparent 58%
    );
    opacity: calc(0.48 * var(--holo-intensity, 1));
}

.void-card-stage.void-rainbow-holo-active--grid.is-tilt-active.void-rainbow-shine-wrap::after,
.catalog-card--rainbow-holo .void-card-stage.is-tilt-active.void-rainbow-shine-wrap::after {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
}

.void-card-stage.void-rainbow-holo-active--grid .void-card-img,
.void-card-stage.void-rainbow-holo-active--grid .catalog-tile-img,
.catalog-card--rainbow-holo .void-card-img,
.catalog-card--rainbow-holo .catalog-tile-img {
    filter: none;
    transform: translateZ(0);
}

/* CORE SHOWCASE 格 · 順滑傾斜 + 彩虹掃光 */
.lb-showcase-tile--interactive {
    perspective: 1000px;
    transform-style: preserve-3d;
}

.lb-showcase-tile__frame {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}

.lb-showcase-tile .card-showcase-grid-tilt {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: none;
    will-change: transform;
}

.lb-showcase-tile .void-card-img,
.lb-showcase-tile .catalog-tile-img {
    pointer-events: none;
}

.lb-showcase-tile.is-showcase-active .void-card-holo::before,
.lb-showcase-tile.is-showcase-active .catalog-tile-holo::before {
    transition: none;
}

.lb-showcase-tile--rainbow .void-card-stage.void-rainbow-holo-active--grid.void-rainbow-shine-wrap::after,
.lb-showcase-tile--rainbow .void-card-holo.void-rainbow-holo::before {
    opacity: 0.48;
}

.lb-showcase-tile--rainbow.is-showcase-active .void-card-holo.void-rainbow-holo::before {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
    opacity: calc(0.62 * var(--holo-intensity, 1));
}

.lb-showcase-tile--rainbow.is-showcase-active .void-card-holo.void-rainbow-holo::after {
    animation: none !important;
    background: radial-gradient(
        circle at var(--holox, 50%) var(--holoy, 50%),
        rgba(255, 255, 255, 0.34) 0%,
        rgba(0, 255, 255, 0.12) 26%,
        transparent 56%
    );
    opacity: calc(0.5 * var(--holo-intensity, 1));
}

.lb-showcase-tile--rainbow.is-showcase-active.void-rainbow-shine-wrap::after,
.lb-showcase-tile--rainbow.is-showcase-active .void-rainbow-shine-wrap::after {
    animation: none !important;
    background-position: var(--holox, 50%) var(--holoy, 50%);
}

@keyframes voidRainbowHoloSweep {
    0% {
        background-position: 0% 40%;
    }
    50% {
        background-position: 100% 60%;
    }
    100% {
        background-position: 0% 40%;
    }
}

@keyframes voidRainbowHoloGlow {
    0%,
    100% {
        opacity: 0.24;
    }
    50% {
        opacity: 0.4;
    }
}

@keyframes voidRainbowCardShine {
    0% {
        background-position: 160% 20%;
        opacity: 0.42;
    }
    45% {
        opacity: 0.78;
    }
    100% {
        background-position: -60% 80%;
        opacity: 0.42;
    }
}

/* ── 彈窗：左卡右文 · 一屏無捲動（詳見 app.css grid） ── */
.modal-inner--zoom #modal-card-mount {
    margin: 0;
    padding: 0;
    overflow: visible;
    width: 100%;
    max-height: calc(96vh - 52px);
}

.modal-inner--zoom #modal-card-mount .void-card-img,
.modal-inner--zoom #modal-card-mount .catalog-tile-img {
    object-fit: contain !important;
}

.modal-inner--zoom .modal-art-panel.catalog-card-art-modal {
    position: relative;
    width: min(360px, 42vw);
    max-width: 100%;
    margin: 0 auto;
    aspect-ratio: var(--void-card-aspect);
    height: auto;
    max-height: none;
    overflow: hidden;
    background: var(--void-card-bg);
    filter: drop-shadow(0 16px 36px rgba(0, 0, 0, 0.55));
}

.modal-inner--zoom .modal-art-panel .void-card-stage:not(.catalog-tile-3d--modal) {
    position: absolute;
    inset: 0;
    overflow: hidden;
    transform: none !important;
}

.modal-inner--zoom .modal-art-panel .catalog-card-mount,
.modal-inner--zoom .modal-art-panel .modal-card-holo-mount {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.modal-inner--zoom .modal-art-panel .void-card-img,
.modal-inner--zoom .modal-art-panel .catalog-tile-img {
    object-fit: contain !important;
    object-position: center center !important;
}

.modal-inner--zoom #modal-card-mount .catalog-card-art-modal {
    width: min(360px, 42vw);
    aspect-ratio: var(--void-card-aspect);
    max-height: none;
    overflow: hidden;
    background: var(--void-card-bg);
}

.modal-inner--zoom .void-card-img,
.modal-inner--zoom .catalog-tile-img,
.modal-inner--premium .void-card-img {
    object-fit: contain !important;
    object-position: center center !important;
}

/* 展示櫃：完整卡框不裁切 */
.showcase-slot--has-art .void-card-img,
.showcase-slot--has-art .catalog-tile-img {
    object-fit: contain !important;
    object-position: center center !important;
}

.showcase-slot--has-art .void-card-stage {
    overflow: visible;
    background: transparent;
}

.showcase-slot--rainbow-holo.showcase-slot--has-art .void-card-stage,
.lb-showcase-tile--rainbow .void-card-stage {
    overflow: hidden;
    background: transparent;
}


/* 排行榜 CORE SHOWCASE · MR/UR 彩虹格 */
.lb-showcase-tile__frame,
.lb-showcase-tile .void-card-frame {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    background: #06040c;
}

.lb-showcase-tile .void-card-stage,
.lb-showcase-tile .catalog-tile-3d {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.lb-showcase-tile .void-card-img,
.lb-showcase-tile .catalog-tile-img {
    width: 100%;
    height: 100%;
    object-fit: contain !important;
    object-position: center center !important;
}

.lb-showcase-tile .catalog-tile-holo {
    border-radius: inherit;
}

.lb-showcase-tile .void-card-stage.is-broken .void-card-img {
    opacity: 0.72;
}

.lb-showcase-tile .void-card-stage.is-broken .void-card-holo,
.lb-showcase-tile .void-card-stage.is-broken .catalog-tile-holo {
    opacity: 1;
}

.modal-inner--zoom .catalog-card-art-modal {
    perspective: 900px;
}

.modal-inner--zoom .catalog-tile-3d--modal {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    will-change: transform;
}

.modal-inner--zoom .catalog-tile-3d--modal.card-holo-tilt {
    transition: transform 0.1s ease-out;
}

.modal-inner--zoom .catalog-tile-3d--modal.is-tilt-rest {
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}

.modal-inner--zoom .modal-art-panel .catalog-tile-3d--modal .void-card-img,
.modal-inner--zoom .modal-art-panel .catalog-tile-3d--modal .catalog-tile-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain !important;
    object-position: center center !important;
    z-index: 1;
}

.modal-inner--zoom .modal-art-panel .catalog-tile-holo {
    z-index: 2;
}

/* 彈窗 / 主打卡 · 強化彩虹掃光 */
.modal-inner--zoom .void-card-stage.void-rainbow-holo-active--featured .void-card-holo.void-rainbow-holo::before,
.modal-inner--zoom .void-card-holo.void-rainbow-holo::before {
    mix-blend-mode: soft-light;
    opacity: 0.56;
}

.modal-inner--zoom .void-card-stage.void-rainbow-holo-active--featured .void-card-holo.void-rainbow-holo::after,
.modal-inner--zoom .void-card-holo.void-rainbow-holo::after {
    opacity: 0.36;
}

.modal-inner--zoom .void-card-stage.void-rainbow-holo-active--featured.void-rainbow-shine-wrap::after,
.modal-inner--zoom .void-rainbow-shine-wrap::after {
    animation-duration: 3.6s;
}

.modal-inner--zoom .modal-detail-text {
    white-space: normal;
    word-break: break-word;
}

@media (max-width: 720px) {
    .modal:has(.modal-inner--zoom) {
        align-items: flex-start;
        padding: max(8px, env(safe-area-inset-top, 0px)) 8px max(12px, env(safe-area-inset-bottom, 0px));
    }

    .modal-inner.modal-inner--zoom {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: min(100%, 400px);
        max-width: 98vw;
        max-height: none;
        gap: 10px;
        grid-template-columns: unset;
        grid-template-rows: unset;
        grid-template-areas: unset;
    }

    .modal-inner--zoom #modal-card-mount {
        flex: 0 0 auto;
        order: 1;
        overflow: hidden;
        max-height: min(40vh, 300px);
    }

    .modal-inner--zoom .modal-art-panel.catalog-card-art-modal {
        width: min(240px, 78vw);
        max-height: min(40vh, 300px);
        margin: 0 auto;
        aspect-ratio: var(--void-card-aspect);
        overflow: hidden;
    }

    .modal-inner--zoom #modal-meta {
        flex: 1 1 auto;
        order: 2;
        overflow-x: hidden;
        overflow-y: auto;
        max-height: min(38vh, 320px);
        min-height: 0;
        padding: 0 6px 6px;
        gap: 8px;
        justify-content: flex-start;
        align-items: stretch;
        text-align: center;
        -webkit-overflow-scrolling: touch;
    }

    .modal-inner--zoom.modal-inner--art-meta {
        max-height: min(92vh, 720px);
    }

    .modal-inner--zoom.modal-inner--art-meta #modal-meta {
        max-height: min(42vh, 360px);
    }

    .modal-inner--zoom .modal-actions {
        flex: 0 0 auto;
        order: 3;
        padding-bottom: max(4px, env(safe-area-inset-bottom, 0px));
    }

    .modal-inner--zoom .modal-card-title {
        font-size: clamp(15px, 4.5vw, 18px);
        line-height: 1.35;
        word-break: break-word;
    }

    .modal-inner--zoom .modal-card-sub {
        font-size: 12px;
        line-height: 1.4;
        word-break: break-word;
    }

    .modal-inner--zoom .modal-card-detail {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .modal-inner--zoom .modal-detail-block {
        text-align: center;
    }

    .modal-inner--zoom #modal-card-mount .card-unified-chrome,
    .modal-inner--zoom #modal-card-mount .card-footer-ui,
    .modal-inner--zoom #modal-card-mount .card-tags,
    .modal-inner--zoom #modal-card-mount .card-gold-frame,
    .modal-inner--zoom #modal-card-mount .card-bound-lock {
        display: none !important;
    }
}

/* ── mountCard 備援 ── */
.card-face.has-art .card-art-img,
.catalog-card-mount .card-art-img,
.bag-card-mount .card-art-img,
.lb-modal-card-mount .card-art-img,
.showcase-slot .card-art-img,
.gacha-view .card-art-img,
.pull-cinema-root .card-art-img,
#pull-result-mount .card-art-img {
    object-fit: contain !important;
    object-position: center center !important;
}

.catalog-card-mount .card-3d-wrap,
.bag-card-mount .card-3d-wrap,
.showcase-slot .card-3d-wrap {
    aspect-ratio: var(--void-card-aspect);
}
