/* A single clock-owned overlay stays present until every committed effect lands. */
.ultimate-cutscene{position:absolute;inset:0;z-index:90;isolation:isolate;overflow:hidden;pointer-events:all;--ultimate-tint:#afc8d9;color:#faf7ed;contain:layout paint;}
.ultimate-cutscene-dim{position:absolute;inset:0;background:#02070d;opacity:0;}
.ultimate-hero-portrait{position:absolute;left:-6%;top:28%;width:112%;height:24%;opacity:0;overflow:hidden;clip-path:polygon(7% 0,100% 0,93% 100%,0 100%);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);z-index:2;transform-origin:center;}
.ultimate-hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;}
.ultimate-caption{position:absolute;top:51%;left:-5%;width:110%;padding:12px 8%;box-sizing:border-box;text-align:center;display:flex;align-items:center;flex-direction:column;gap:3px;opacity:0;clip-path:polygon(0 0,94% 0,100% 100%,6% 100%);background:linear-gradient(90deg,transparent,#10171deb 13%,#10171df5 86%,transparent);text-shadow:0 1px 3px #000;transform-origin:center;pointer-events:none;z-index:3;}
.ultimate-activation-label{font:600 10px/1.4 var(--font-ui);letter-spacing:.25em;color:var(--ultimate-tint);opacity:.85;}
.ultimate-hero-name{font:600 clamp(13px,3.5cqw,19px)/1.4 var(--font-ui);color:#efeee8;}
.ultimate-skill-name{font:850 clamp(28px,8cqw,43px)/1.18 var(--font-ui);color:var(--ultimate-tint);text-wrap:balance;letter-spacing:-.035em;}
.ultimate-cinematic-effects{position:absolute;inset:0;pointer-events:none;}
.ultimate-cinematic-effects .flying-card{z-index:6;pointer-events:none!important;filter:drop-shadow(0 5px 10px #000a);}
.ultimate-cinematic-effects .game-card{pointer-events:none!important;}
.ultimate-contact-ring{position:absolute;width:80px;aspect-ratio:1;border:2px solid var(--ultimate-tint);border-radius:50%;background:radial-gradient(#fff7,transparent 62%);box-shadow:0 0 14px var(--ultimate-tint),inset 0 0 12px var(--ultimate-tint);}
.ultimate-particle{position:absolute;background:var(--ultimate-tint);box-shadow:0 0 8px var(--ultimate-tint);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);}
.ultimate-effect-ribbon{position:absolute;inset:0;}
.ultimate-effect-ribbon svg{width:100%;height:100%;overflow:visible;}
.ultimate-effect-ribbon path{fill:none;stroke:var(--ultimate-tint);stroke-width:9;stroke-linecap:round;stroke-dasharray:28 100;filter:drop-shadow(0 0 7px var(--ultimate-tint));}
.ultimate-element-art{position:absolute;left:-6%;top:18%;width:112%;height:46%;opacity:0;pointer-events:none;mix-blend-mode:screen;}
.ultimate-element-art img,.ultimate-element-art canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.ultimate-element-progress{position:absolute;width:1px;height:1px;pointer-events:none;visibility:hidden;}
.ultimate-element-art.element-light{top:12%;height:55%;}
.ultimate-element-art.element-earth{top:22%;height:43%;}

.ultimate-element-art.is-compact{top:34%;left:7%;width:86%;height:29%;z-index:1;}
