/* V22 effects do not own layout. The six-row combat grid stays in combat.css. */
.v22-fx{position:fixed;z-index:82;pointer-events:none!important;user-select:none;contain:layout style}
.impact-art{width:100px;height:100px;transform:translate(-50%,-50%)}
.impact-art img{width:100%;height:100%;object-fit:contain;display:block}
.impact-ring{border:2px solid var(--fx-colour,#ead8ad);border-radius:50%;box-sizing:border-box}
.impact-chip{width:4px;height:6px;border-radius:1px}
.spell-travel{width:46px;height:46px;transform-origin:center}
.spell-travel img{width:100%;height:100%;object-fit:contain}
.spell-travel.ranged{width:56px;height:26px}
.energy-bead{width:10px;height:10px;border-radius:50%;background:#f9dda0;box-shadow:0 0 8px #edc37288}
.combat-number{max-width:min(70vw,250px);white-space:nowrap;text-align:center;font:900 clamp(22px,3vw,38px)/1 var(--font-display);letter-spacing:-.03em;color:#ffead0;text-shadow:0 2px 0 #292619,1px 0 0 #292619,-1px 0 0 #292619}
.combat-number.heavy{font-size:clamp(28px,3.4vw,46px);color:#ffe2a3}
.combat-number.note,.combat-number.gold,.combat-number.blocked,.combat-number.heal,.combat-number.poison{font:800 clamp(11px,1.1vw,16px)/1.25 var(--font-ui);letter-spacing:.03em;background:#10221bee;border-radius:7px;padding:6px 10px;color:#f8e4b5;text-shadow:none}
.combat-number.heal,.combat-number.poison{color:#cce6a7}.combat-number.blocked{color:#c5e1e8}
.hunt .unit.cue-acting .ring{opacity:1;border-color:#fae2a0;box-shadow:0 0 0 1px #dbc17e33}
.hunt .unit.cue-acting .intent{color:#ffeac4;background:#614b29;box-shadow:inset 0 1px #f1d58c28}
.hunt .unit.cue-defeated .intent,.hunt .unit.cue-defeated .actor-caption{opacity:.3;transition:opacity .25s}
.hunt .unit .intent.cue-cancelled{color:#edcd84;background:#342f1a;text-decoration:none;font-weight:800}
.hunt .phase-counter small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.hunt .phase-counter b{color:#f6d396;letter-spacing:.09em}
.hunt .hp .hp-echo{position:absolute;inset:0 auto 0 0;background:#f4d9a1;pointer-events:none;border-radius:inherit}
.hunt .hp>i{z-index:1}.hunt .hp>em{z-index:2}.hunt .hp>b{z-index:3}
.card-flight{transform-origin:50% 50%;perspective:1000px;filter:none;isolation:isolate}
.card-flight>.card.flight-face{pointer-events:none;transition:none!important;left:0!important;top:0!important;margin:0!important;transform-origin:50% 50%;filter:none!important;backface-visibility:hidden}
.card-flight .flight-back{backface-visibility:hidden;transform-origin:50% 50%;z-index:3}
.card-flight .card-face{transform:none!important;transition:none!important}
.card-flight .card-face:after{opacity:0!important}
.shuffle-back{position:fixed;z-index:84;width:28px;height:40px;pointer-events:none;background-size:100% 100%;background-repeat:no-repeat}
/* A stable card hit target and a separate 3D face prevent tilt/flight/fan conflicts. */
.card{filter:none!important;will-change:auto;transform-style:flat}
.card:before,.card:after{display:none!important}
.card-face{position:absolute;inset:0;display:block;transform-style:preserve-3d;transform-origin:50% 50%;isolation:isolate;transform:perspective(950px) rotateX(var(--tilt-rx,0deg)) rotateY(var(--tilt-ry,0deg));transition:transform .18s cubic-bezier(.18,.8,.24,1)}
.card-face:before{content:'';position:absolute;inset:9% 7% 7%;border-radius:9px;box-shadow:0 5px 7px #0005;transform:translateZ(-1px);pointer-events:none}
.card .card-face:after{content:'';position:absolute;inset:9% 8% 8%;border-radius:8px;background:radial-gradient(ellipse at var(--gloss-x,50%) var(--gloss-y,25%),#fff8df50,transparent 48%);transform:translateZ(25px);opacity:0;pointer-events:none;transition:opacity .18s}
.card.tilting .card-face:after{opacity:.65}
.card .card-face .frame{z-index:0;transform:translateZ(0);pointer-events:none}
.card .card-face .cost,.card .card-face .card-name,.card .card-face .family,.card .card-face .description,.card .card-face .rarity-text{z-index:2;transform:translateZ(4px)}
.card .card-face .card-art{z-index:1;transform:translateZ(14px);pointer-events:none}
.hunt .hand>.card{transform:rotate(var(--fan-angle,0deg)) scale(var(--fan-scale,1))!important;transform-origin:50% 50%;--hover-scale:1;--hover-lift:0px}
.hunt .hand>.card.selected{filter:none!important;--hover-scale:1;--hover-lift:0px}
.card.selected .card-face:before,.reward-pick.active .card-face:before{box-shadow:0 0 0 1px #edc87a,0 7px 10px #0005}
.card.lesson-card:not(.selected) .card-face:before{box-shadow:0 0 0 1px #c5af70,0 5px 7px #0005}
.card-flight .card-key{display:none!important}
.drag-ghost .card-face{transform:none!important}.drag-ghost .card-face:after{display:none!important}
body.busy .mode-controls{pointer-events:none}
body.reduce .v22-fx,body.reduce .shuffle-back{display:none!important}
body.reduce .card-face{transform:none!important;transition:none!important}
@media(hover:none),(pointer:coarse){.card-face{transform:none!important}.card .card-face:after{display:none}}
@media(prefers-reduced-motion:reduce){.v22-fx,.shuffle-back{display:none!important}.card-face{transform:none!important;transition:none!important}}
