/* Presentation-only overlays; no battlefield or control sizing. */
.duo-knockouts{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}
.ko-outgoing{position:absolute;display:grid;place-items:center}
.ko-outgoing-art{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:contain;overflow:hidden;border-radius:8px}
/* Detached full-card effects must not inherit the mobile portrait crop or
   stretch an NFT's artwork over its printed frame. Shared by duels and duos. */
.full-card-snapshot>.card-art{display:block!important;position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;mask-image:none!important;transform:none!important;background:none!important}
.full-card-snapshot>.card-art>img{display:block!important;position:static!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;transform:none!important;translate:none!important;scale:none!important;animation:none!important;aspect-ratio:auto!important}
.full-card-snapshot .rip-preview{width:100%!important;height:100%!important;margin:0!important;overflow:hidden!important}
.full-card-snapshot .rip-preview>img{position:absolute!important;left:22.2%!important;top:13.7%!important;width:71.5%!important;height:59%!important;object-fit:cover!important;transform:none!important;translate:none!important;scale:none!important;animation:none!important}
.ko-lettering{position:relative;font:1000 clamp(26px,7vw,46px)/1 Arial,sans-serif;letter-spacing:-2px;color:#f0e5bd;text-shadow:3px 3px #462453,-2px -2px #172118,0 0 15px #c797e7;rotate:-8deg;paint-order:stroke fill;-webkit-text-stroke:1px #211523}
.ko-defeat-stat{position:absolute;bottom:2px;background:rgb(var(--rd-panel-rgb, 16 23 38) / 0.91);color:#f1b0ad;padding:2px 6px;border-radius:4px;font:800 14px Arial}
.ko-arrival-hidden{visibility:hidden!important}
.duo-death-layout #outcome{display:none!important}
.duo-mobile-v2.duo-death-layout .dock{height:var(--death-dock-height)!important;min-height:var(--death-dock-height)!important;flex-shrink:0}
.ko-seat-transition .station-stats,.ko-seat-transition .station-traits,.ko-seat-transition .station-card-name,.ko-seat-transition .station-details{visibility:hidden!important}
.spell-fragments path{fill:#c8b0ed;stroke:var(--spell-edge);stroke-width:1}
.spell-ribbon{stroke-width:3!important;stroke:var(--spell-edge)!important;opacity:.65}
.spell-core{transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 3px var(--spell))}
.spell-core path{fill:#14212acf;stroke-width:2}
.spell-impact-fragment{fill:var(--spell-edge)!important;stroke:none!important}
.spell-poison .spell-core{filter:none}.spell-poison .spell-core path{fill:#a1c65799;stroke:#d3ef80}
.spell-poison .spell-ribbon{stroke-width:5!important;stroke:var(--spell)!important}
.effect-travel:after{display:none}
.effect-travel{width:32px;height:32px;background:none!important;box-shadow:none!important}
.effect-travel svg{width:32px;height:32px;overflow:visible;filter:drop-shadow(0 0 4px #ac86f799)}
.effect-travel .attack-core{fill:#1b2430;stroke:#c4a3fb;stroke-width:2;transform-origin:16px 16px}
.effect-travel .attack-fragments{fill:#bcebef;transform-origin:16px 16px}

.player-ko{display:inline-flex;gap:2px;align-items:center;flex:none;color:#d6dcc9;font:700 10px Arial;white-space:nowrap}
.player-ko svg{width:11px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5}

.player-lives{display:inline-flex;align-items:baseline;gap:3px;flex:none;color:#d6dfbe;white-space:nowrap;font:700 10px Arial}
.player-lives small{font:700 7px Arial;letter-spacing:.3px;color:#adbaab}.player-lives b{font-size:11px}.player-lives[hidden]{display:none}

.grave-soil-layer{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}
.grave-soil-stage{position:absolute;display:block;overflow:hidden;pointer-events:none}
.grave-soil-stage svg{display:block;width:100%;height:100%;overflow:visible}
.soil-hole{fill:#060e0cf0;stroke:#647350;stroke-width:.8}.soil-mound{fill:#34372b;stroke:#797550;stroke-width:1}
.soil-stem{fill:none;stroke:#91a964;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.soil-leaf{fill:#648442;stroke:#adc079;stroke-width:1.1;transform-box:fill-box;transform-origin:100% 100%}.soil-leaf.right{transform-origin:0 100%}
.soil-plant{transform-origin:50px 94px}.soil-bloom{transform-origin:51px 30px}.soil-bud{fill:#72855d;stroke:#b4a0c7;stroke-width:1}
.soil-petals path{fill:#9c70c4;stroke:#d4ade8;stroke-width:1;transform-origin:51px 27px}.soil-petals path:nth-child(2n){fill:#786bab}
.soil-calyx{fill:#78895c}.soil-seed{fill:#d8cea1;stroke:#857548;stroke-width:.8}.soil-seed-lines{fill:none;stroke:#38322a;stroke-width:1.4;stroke-linecap:round}
.soil-bone{fill:#e5dab8;stroke:#75674e;stroke-width:1.5;transform-origin:50px 94px}.soil-speck{position:absolute;bottom:6%;width:3px;height:2px;background:#999073}

.attack-magic{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:var(--attack-color);stroke-width:1.6;filter:drop-shadow(0 0 3px var(--attack-color))}
.attack-rune{fill:#152131;stroke:var(--attack-edge);stroke-width:2}.attack-orbit{stroke:var(--attack-color);stroke-width:1.2}.attack-orbit path:not([fill]){fill:var(--attack-edge)}
.attack-wake{stroke:var(--attack-color);stroke-width:4;fill:none;stroke-linecap:round;filter:blur(1px)}.attack-residue{fill:var(--attack-edge);stroke:none}.attack-impact{stroke:var(--attack-edge);stroke-width:2}.attack-poison .attack-rune{fill:#83ad5b99}.attack-physical .attack-rune{fill:#ebd0a9}
