/* v0.10.12 — Character-specific, non-blocking gameplay feedback.
 * Uses public Solo/Online signals and existing combat-fx layer only.
 * Never adds text notices, changes card dimensions, or captures touch input. */
.game-stage .ty-cinematic-ring {position:relative;display:grid;place-items:center}
.game-stage .ty-cinematic-sigil {color:var(--ty-color);font:900 26px/1 system-ui,sans-serif;
 text-shadow:0 0 10px var(--ty-color),0 0 18px var(--ty-glow);
 opacity:.9;pointer-events:none;animation:ty-sigil-flash .75s ease-out both}
.game-stage .ty-cinematic-attack .ty-cinematic-sigil {font-size:24px}
.game-stage .ty-cinematic-chaos .ty-cinematic-ring {border-style:dashed;box-shadow:0 0 18px #bb80ff88,inset 0 0 20px #ab74fd57}
.game-stage .ty-cinematic-chaos .ty-cinematic-sigil {font-size:33px}
.game-stage .ty-cinematic-order .ty-cinematic-ring {border-radius:16px;animation-name:ty-order-ring;background:linear-gradient(135deg,#5f3ba135,transparent)}
.game-stage .ty-cinematic-order .ty-cinematic-sigil {transform:rotate(-45deg)}
.game-stage .ty-cinematic-shield .ty-cinematic-ring {border-radius:28%;border-width:3px;background:radial-gradient(circle,#ffd77830,#ffd77808 65%,transparent)}
.game-stage .ty-cinematic-shield .ty-cinematic-sigil {font-size:35px}
.game-stage .ty-cinematic-reflect .ty-cinematic-ring {border-style:double;border-width:5px}
.game-stage .ty-cinematic-reflect .ty-cinematic-sigil {font-size:34px}
.game-stage .ty-cinematic-stack .ty-cinematic-ring {border-radius:18px;animation-name:ty-stack-ring;box-shadow:6px 5px 0 -1px #0e395c,7px 5px 0 1px #80f3db,12px 10px 0 -1px #192049,13px 10px 0 1px #80f3db,0 0 16px #75eed757}
.game-stage .ty-cinematic-stack .ty-cinematic-sigil {font-size:26px}
.game-stage .ty-cinematic-absorbed {--ty-color:#ffa77d;--ty-glow:#f77e5744}
.game-stage .ty-cinematic-absorbed .ty-cinematic-ring {border-style:dashed}
/* Persistent, unobtrusive states on the character panels. The existing effect
   labels still communicate meaning and remain readable without color. */
.game-stage .opponent.ty-ability-shielded,.game-stage #my-player.ty-ability-shielded {outline:2px solid #ffc9699c;outline-offset:1px}
.game-stage .opponent.ty-ability-locked,.game-stage #my-player.ty-ability-locked {outline:2px dashed #b68ff0b3;outline-offset:1px}
.game-stage .opponent.ty-ability-targeted,.game-stage #my-player.ty-ability-targeted {outline:2px solid #f18badab;outline-offset:1px}
.game-stage .opponent.ty-ability-actor,.game-stage #my-player.ty-ability-actor {animation:ty-ability-actor .85s ease-out both}
/* Card landing stays confined to the discard slot; no ghost cards across HUD. */
.game-stage #top-card .game-card.ty-card-arrival {animation:ty-discard-arrival .52s cubic-bezier(.18,.8,.22,1) both;
 transform-origin:50% 50%}
@keyframes ty-order-ring {
 0%{opacity:0;transform:rotate(45deg) scale(.45)}
 27%{opacity:.95;transform:rotate(45deg) scale(1.12)}
 75%{opacity:.72;transform:rotate(45deg) scale(1)}
 100%{opacity:0;transform:rotate(45deg) scale(1.2)}
}
@keyframes ty-stack-ring {
 0%{opacity:0;transform:rotate(-18deg) scale(.6)}
 27%{opacity:.95;transform:rotate(-6deg) scale(1.08)}
 75%{opacity:.8;transform:rotate(-10deg) scale(1)}
 100%{opacity:0;transform:rotate(-12deg) scale(1.14)}
}
@keyframes ty-discard-arrival {
 0% {filter:brightness(1.45);transform:scale(.92) rotate(-3deg)}
 45% {filter:brightness(1.16);transform:scale(1.035) rotate(1deg)}
 100% {filter:brightness(1);transform:scale(1) rotate(0deg)}
}
@keyframes ty-ability-actor {
 0% {filter:drop-shadow(0 0 2px var(--ty-actor-color))}
 30% {filter:drop-shadow(0 0 10px var(--ty-actor-color))}
 100% {filter:none}
}
@keyframes ty-sigil-flash {0%{opacity:0;scale:.6}35%{opacity:1;scale:1.1}100%{opacity:.2;scale:1}}
@media (pointer:coarse) and (orientation:landscape) and (max-height:760px) {
 .game-stage .ty-cinematic-sigil{font-size:18px}
 .game-stage .ty-cinematic-chaos .ty-cinematic-sigil,.game-stage .ty-cinematic-shield .ty-cinematic-sigil,.game-stage .ty-cinematic-reflect .ty-cinematic-sigil{font-size:22px}
 .game-stage .ty-cinematic-stack .ty-cinematic-ring{box-shadow:3px 3px 0 -1px #0e395c,4px 3px 0 1px #80f3db,0 0 12px #75eed757}
}
@media(prefers-reduced-motion:reduce){
 .game-stage .ty-cinematic-sigil,.game-stage .opponent.ty-ability-actor,.game-stage #my-player.ty-ability-actor,
 .game-stage #top-card .game-card.ty-card-arrival{animation:none!important;filter:none!important}
}
