.dm-presentation-layer { position:fixed; inset:0; z-index:160; pointer-events:none; overflow:hidden; contain:layout style; }
.dm-presentation-layer *, .dm-action-recap * { box-sizing:border-box; }
.dm-announcer { position:fixed; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.dm-contract-card { position:relative; width:224px; border:1px solid #c9aa6a; border-radius:13px; background:#eee5d1; color:#302d3b; overflow:visible; box-shadow:0 12px 42px #0009,0 0 0 4px #1c2632,0 0 30px #d2b47744; font-family:inherit; text-align:left; isolation:isolate; }
.dm-contract-art { width:100%; height:184px; display:block; object-fit:cover; border-radius:12px 12px 0 0; background:linear-gradient(140deg,#29364b,#8a7c9c); }
.dm-contract-cost { position:absolute; top:-10px; left:-9px; width:43px; height:46px; display:grid; place-items:center; background:#264b75; border:2px solid #c6ddeb; clip-path:polygon(50% 0,95% 25%,90% 78%,50% 100%,10% 78%,5% 25%); color:#fff; font:700 27px Georgia,serif; text-shadow:0 2px 4px #0009; }
.dm-contract-copy { padding:13px 14px 10px; border-top:2px solid #b49c68; }
.dm-contract-copy>strong { display:block; font-size:18px; line-height:1.35; color:#2c2c38; }
.dm-contract-type { display:block; font-size:10px; letter-spacing:.14em; color:#8b764b; padding:5px 0 8px; }
.dm-contract-copy p { margin:0; font-size:13px; line-height:1.65; color:#45404a; min-height:44px; }
.dm-contract-stats { margin-top:10px; border-top:1px solid #c6b592; padding-top:7px; font-size:12px; font-weight:700; }
.dm-reveal-card { position:absolute; transform:translate(-50%,-50%); width:250px; box-shadow:0 18px 90px #000b,0 0 0 4px #1e2935,0 0 70px #d3b47055; }
.dm-reveal-card .dm-contract-art { height:204px; }
.dm-reveal-card .dm-contract-copy { padding:16px 17px 13px; }
.dm-reveal-card .dm-contract-copy>strong { font-size:22px; }
.dm-reveal-card .dm-contract-copy p { font-size:15px; min-height:50px; }
.dm-play-owner { position:absolute; bottom:calc(100% + 18px); left:50%; transform:translateX(-50%); padding:7px 18px; border:1px solid #c5a96699; border-radius:30px; background:#151e2ff2; color:#f0d59c; white-space:nowrap; font-size:13px; letter-spacing:.14em; }
.dm-action-recap { position:absolute; top:85px; left:14px; z-index:12; width:155px; padding:10px; border:1px solid #9b8a6244; border-radius:9px; background:linear-gradient(140deg,#17222aeb,#161922e6); box-shadow:0 8px 28px #0004; color:#ddd2bd; pointer-events:none; }
[data-zone="action-recap"] .dm-action-recap { position:relative; top:auto; left:auto; width:100%; }
.dm-recap-label { display:block; font-size:10px; letter-spacing:.08em; color:#c8b17a; margin-bottom:9px; }
.dm-recap-card { width:100%; border-radius:7px; border-color:#9b8a62; box-shadow:none; }
.dm-recap-open { display:block; width:100%; min-width:44px; min-height:44px; padding:0; border:0; border-radius:7px; background:transparent; color:inherit; font:inherit; text-align:inherit; cursor:pointer; pointer-events:auto; touch-action:manipulation; }
.dm-recap-open:focus-visible { outline:3px solid #f2d496; outline-offset:4px; }
.dm-recap-card .dm-contract-art { height:70px; border-radius:6px 6px 0 0; }
.dm-recap-card .dm-contract-copy { padding:8px; }
.dm-recap-card .dm-contract-copy>strong { font-size:12px; }
.dm-recap-card .dm-contract-type { display:none; }
.dm-recap-card .dm-contract-copy p { font-size:10px; line-height:1.5; min-height:0; margin-top:4px; }
.dm-recap-card .dm-contract-stats { font-size:9px; margin-top:5px; padding-top:4px; }
.dm-recap-card .dm-contract-cost { width:26px; height:29px; top:-4px; left:-4px; font-size:16px; }
.dm-recap-action { margin:8px 0 0; font-size:11px; line-height:1.6; color:#d6cdbd; }
.dm-recap-empty { font-size:11px; line-height:1.6; opacity:.65; margin:0; }
.dm-recap-symbol { text-align:center; padding:10px; color:#d4b67a; font-size:38px; }
.dm-number { position:absolute; transform:translate(-50%,-50%); color:#f1cf82; font:700 17px/1.1 system-ui,sans-serif; white-space:nowrap; text-shadow:0 2px 3px #000,0 0 10px #000,1px 0 #10141c,-1px 0 #10141c; z-index:8; }
.dm-number-large { font:700 40px/1 Georgia,serif; -webkit-text-stroke:.5px #2c1720; }
.dm-red { color:#ffb6a0; --dm-color:#ff866f; }
.dm-green { color:#b3edba; --dm-color:#8fdfa2; }
.dm-blue { color:#b3dffc; --dm-color:#8acdeb; }
.dm-gold { color:#ffe3a2; --dm-color:#d7b872; }
.dm-violet { color:#e2c5ff; --dm-color:#bc9ae5; }
.dm-silver { color:#e3e7e8; --dm-color:#c4ced3; }
.dm-spell-trail { position:absolute; height:4px; border-radius:50%; background:linear-gradient(90deg,transparent,var(--dm-color,#c5a5ec),#fff); box-shadow:0 0 14px var(--dm-color,#a787de); }
.dm-spark { position:absolute; width:5px; height:10px; border-radius:80% 10%; background:var(--dm-color,#d7b872); box-shadow:0 0 8px var(--dm-color,#d7b872); }
.dm-shield-ring { position:absolute; width:100px; height:130px; border:3px solid #ffe6a3; border-radius:50%; box-shadow:0 0 24px #ffdd87, inset 0 0 20px #ffe5a344; }
.dm-action-banner { position:absolute; transform:translate(-50%,-50%); width:min(460px,86vw); padding:25px 30px; text-align:center; background:linear-gradient(90deg,transparent,#121b2ff2 18%,#121b2ff2 82%,transparent); border-top:1px solid #c9b78370; border-bottom:1px solid #c9b78370; text-shadow:0 3px 10px #000; }
.dm-action-banner small { display:block; margin-bottom:9px; font-size:11px; letter-spacing:.15em; color:#d4c7b2; }
.dm-action-banner strong { display:block; font-size:38px; font-weight:500; letter-spacing:.18em; font-family:'Songti SC','STSong','SimSun',serif; }
.dm-counter-label,.dm-trigger-label,.dm-burn-label { position:absolute; transform:translate(-50%,-50%); padding:6px 12px; border:1px solid #d5b98577; border-radius:20px; background:#211b30eb; color:#f2dbb4; font-size:12px; white-space:nowrap; }
.dm-counter-label { border-color:#e8a08e; color:#ffc4b7; }
.dm-trigger-label { border-color:#bea0df; color:#e1c3fa; }
.dm-transition-trigger { max-width:min(260px,72vw); white-space:normal; text-align:center; line-height:1.5; }
.dm-transition-trigger small { display:block; font-size:9px; font-weight:normal; opacity:.82; margin-top:2px; }
.dm-burn-label { border-color:#d47c5e; color:#ffc7a2; }
.dm-source-ghost { opacity:.22!important; }
.dm-hit-flash { filter:brightness(1.6) sepia(.35) saturate(1.7); }
.dm-summoning { box-shadow:0 0 28px #c7abe1!important; }
.dm-attack-clone,.dm-death-clone { pointer-events:none!important; z-index:5; transform-origin:center; }
.dm-attack-clone { filter:drop-shadow(0 6px 14px #cdb68066); }
.dm-draw-card,.dm-burn-card { position:absolute; width:140px; transform:translate(-50%,-50%); }
.dm-draw-card .dm-contract-art,.dm-burn-card .dm-contract-art { height:100px; }
.dm-draw-card .dm-contract-copy,.dm-burn-card .dm-contract-copy { padding:7px; }
.dm-draw-card .dm-contract-copy strong,.dm-burn-card .dm-contract-copy strong { font-size:13px; }
.dm-draw-card .dm-contract-copy p,.dm-burn-card .dm-contract-copy p { font-size:9px; min-height:0; }
.dm-card-back { display:grid; place-items:center; aspect-ratio:2/3; background:repeating-linear-gradient(45deg,#263445 0,#263445 2px,#1c2635 2px,#1c2635 9px); border:2px solid #b6a275; box-shadow:inset 0 0 0 6px #1b2635,inset 0 0 0 7px #a28b58,0 8px 30px #0008; color:#c8b57f; }
.dm-card-back-sigil { font-size:52px; font-family:Georgia,serif; margin-top:20px; }
.dm-card-back small { font-size:7px; letter-spacing:.13em; margin-top:-24px; }
.dm-world-veil { position:absolute; inset:0; mix-blend-mode:screen; }
.dm-enter-dream { background:radial-gradient(ellipse at center,#9572bd77,#393366aa 55%,#121c3866); }
.dm-enter-waking { background:radial-gradient(ellipse at center,#f1d490aa,#c8a45e66 55%,#57493144); }
.dm-world-ripple { position:absolute; width:100vmax; height:100vmax; border:2px solid var(--dm-color,#c1a5e9); border-radius:50%; background:radial-gradient(circle,transparent 62%,#b4a0dd25 68%,transparent 72%); box-shadow:0 0 70px var(--dm-color,#c1a5e9); }
@media(max-width:800px) { .dm-action-recap { top:66px; left:5px; width:112px; padding:7px; opacity:.94; } .dm-recap-card .dm-contract-art { height:45px; } .dm-recap-card .dm-contract-copy { padding:6px; } .dm-recap-card .dm-contract-copy>strong { font-size:11px; } .dm-recap-card .dm-contract-copy p { font-size:9px; } .dm-recap-card .dm-contract-stats { display:none; } .dm-recap-label { font-size:9px; margin-bottom:6px; } .dm-recap-action { font-size:10px; margin-top:6px; } .dm-reveal-card { width:224px; } .dm-reveal-card .dm-contract-art { height:166px; } .dm-reveal-card .dm-contract-copy>strong { font-size:19px; } .dm-reveal-card .dm-contract-copy p { font-size:14px; } .dm-number-large { font-size:33px; } .dm-action-banner strong { font-size:31px; } }
@media(prefers-reduced-motion:reduce) { .dm-presentation-layer *, .dm-action-recap * { scroll-behavior:auto!important; } .dm-spark { display:none; } }
