.skirmish-hero{min-height:65svh}.skirmish-hero p{max-width:790px}.skirmish-disclaimer{border-left:2px solid #c59c54;padding:.7rem 1rem;background:rgba(8,10,10,.58);font-size:.94rem;color:#cfccbf!important}
.skirmish-section{width:min(1570px,calc(100% - 2rem));padding-top:4rem}.skirmish-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.skirmish-heading h2{font-family:Georgia,serif;font-size:clamp(2rem,3vw,2.8rem);margin:.35rem 0}.skirmish-heading p{color:#c6b9a3}
.battle-demo-layout{display:grid;grid-template-columns:minmax(185px,.68fr) minmax(460px,2.1fr) minmax(185px,.72fr);align-items:start;gap:1rem}.demo-army{background:linear-gradient(165deg,#1a1b18,#0b100f);border:1px solid #4b4638;border-radius:12px;padding:1rem;min-width:0}.demo-army h3{font-family:Georgia,serif;font-size:1.15rem;display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin:0 0 1rem;color:#e4cf9f}.demo-army h3 small{font:600 .64rem Inter,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#998e78}.demo-roster{display:grid;gap:.65rem}
.unit-card{width:100%;border:1px solid #554e3d;background:#22231e;padding:.6rem;color:inherit;text-align:left;display:grid;grid-template-columns:72px minmax(0,1fr);gap:.7rem;align-items:start;border-radius:8px;transition:border-color .15s,background .15s}.unit-card[role=button]{cursor:pointer}.unit-card.is-active{outline:2px solid #ddbd75;background:#333023}.unit-card.is-done{opacity:.6}.unit-card.is-fallen{opacity:.38;filter:grayscale(1)}.unit-portrait{position:relative;width:72px;height:88px;border:1px solid #74644b;background:linear-gradient(145deg,#4c534a,#161b17);display:grid;place-items:center;border-radius:6px;color:#f4d68c;font:700 1.2rem Georgia,serif;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.unit-portrait img{width:100%;height:100%;object-fit:cover;display:block}.hero-portrait img{object-position:center 10%; transform:scale(1.02)}.enemy-portrait img{object-fit:cover;object-position:center 14%;transform:scale(1.05);padding:0;background:radial-gradient(circle at 50% 38%,rgba(110,67,53,.22),transparent 62%)}.unit-rank-badge{position:absolute;left:4px;top:4px;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border-radius:999px;background:rgba(11,14,15,.85);border:1px solid #d9bf81;color:#f5dfaa;font:700 .72rem Inter,Arial,sans-serif;letter-spacing:.02em}.unit-card h4{font-size:.82rem;line-height:1.28;color:#f4e2c0;margin:0 0 .15rem;overflow-wrap:anywhere}.unit-card small{display:block;color:#b2aa98;font-size:.7rem}.unit-info{min-width:0}.unit-hp{height:6px;border-radius:5px;background:#5b3332;overflow:hidden;margin:.45rem 0 .3rem}.unit-hp span{display:block;height:100%;background:linear-gradient(90deg,#4f9a65,#a7c174);transition:width .25s}.enemy-hp span{background:linear-gradient(90deg,#9a4a38,#d68c5e)}.unit-numbers{font-size:.69rem;color:#c8c4b7;display:flex;gap:.4rem;flex-wrap:wrap}.unit-card .unit-detail{display:block;font-size:.66rem;margin-top:.3rem;line-height:1.35;color:#c4b99e}
.demo-hint{color:#a7a395;font-size:.78rem;line-height:1.6;margin:1.2rem 0 .1rem}.demo-center{min-width:0}.demo-field-frame{border:1px solid #665740;padding:.6rem;background:#101412;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.45)}.demo-field-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.1rem .15rem .65rem;font:700 .72rem Georgia,serif;letter-spacing:.1em;color:#d9c394}.demo-field-top span{font-family:Inter,Arial,sans-serif;color:#d8d5c6;letter-spacing:0}.demo-board-scroll{width:100%;overflow-x:auto;scrollbar-color:#68604e transparent}.demo-board{--tile:clamp(36px,4.35vw,65px);display:grid;grid-template-columns:repeat(10,var(--tile));grid-template-rows:repeat(7,var(--tile));width:max-content;max-width:none;margin:auto;background:linear-gradient(130deg,rgba(16,22,18,.18),rgba(23,29,23,.12)),url('../assets/scenes/combate-claro.webp') center/cover;border:2px solid #4a5246;box-shadow:inset 0 0 55px #071009;position:relative}
.demo-cell{width:var(--tile);height:var(--tile);display:grid;place-items:center;position:relative;padding:0;background:rgba(22,26,19,.12);border:1px solid rgba(190,188,151,.15);border-radius:0;color:#f9e8c9;cursor:default}.demo-cell:nth-child(even){background:rgba(26,33,25,.08)}.demo-cell.is-rock{background:radial-gradient(ellipse at 40% 20%,#63665c,#343a36 50%,#151b18 88%);box-shadow:inset 0 0 12px #141a17;color:#858b77}.demo-cell.can-move{cursor:pointer;box-shadow:inset 0 0 0 2px rgba(118,202,155,.83);background:rgba(63,151,107,.32)}.demo-cell.can-hit{cursor:pointer;box-shadow:inset 0 0 0 2px rgba(225,123,81,.95);background:rgba(167,63,49,.31)}.demo-cell.has-unit{cursor:pointer}.demo-cell.unit-selected{outline:3px solid #f0d68e;outline-offset:-3px;z-index:2}.demo-cell.has-trap:after{content:'◆';position:absolute;right:1px;top:0;color:#e2a63c;font-size:1rem;filter:drop-shadow(0 1px 2px #000)}.demo-cell:focus-visible{outline:3px solid white;z-index:4}.demo-piece{width:90%;height:91%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border-radius:6px;overflow:hidden;box-shadow:0 2px 7px #0009;text-shadow:0 1px 2px #000;font:700 .95rem Georgia,serif;position:relative}.demo-piece.ally{background:linear-gradient(150deg,#516a63,#213c34);border:1px solid #a0ceb0;color:#e8ffec}.demo-piece.enemy{border:1px solid #d2a27a;background:linear-gradient(130deg,#6f4338,#34211d)}.demo-piece img{height:100%;width:100%;display:block}.demo-piece.ally img{object-fit:cover;object-position:center 12%;transform:scale(1.12)}.demo-piece.enemy img{object-fit:cover;object-position:center 2%;transform:scale(1.16);padding:0;background:radial-gradient(circle at 50% 32%,rgba(134,85,61,.16),transparent 62%)}.piece-tag{position:absolute;left:2px;right:2px;bottom:2px;padding:2px 3px;border-radius:3px;background:rgba(5,8,8,.82);font:700 .4rem/1.15 Inter,Arial,sans-serif;letter-spacing:.06em;text-align:center;text-transform:uppercase}.ally-tag{border:1px solid rgba(160,206,176,.55);color:#e6fff2}.enemy-tag{border:1px solid rgba(210,162,122,.55);color:#ffe3cb}.piece-hp{position:absolute;bottom:1px;left:10%;height:3px;width:80%;background:#74332b;border-radius:2px;overflow:hidden}.piece-hp i{display:block;height:100%;background:#92b98b}.demo-cell.is-defeated{filter:grayscale(1)}
.demo-board-legend{display:flex;gap:.35rem .75rem;flex-wrap:wrap;font-size:.67rem;color:#bdbaa9;margin:.65rem .15rem .15rem}.demo-board-legend span{display:flex;align-items:center;gap:.3rem}.demo-board-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid #a5a090}.legend-ally{background:#436d57}.legend-enemy{background:#a15f42}.legend-move{background:#579f75}.legend-attack{background:#bc6749}.legend-rock{background:radial-gradient(circle at 34% 34%,#82945a 0 22%,#4e653e 24% 54%,#26382c 57%);border-radius:50%}.legend-trap{background:#d49f44}
.demo-actions{margin-top:1rem;background:#151917;border:1px solid #4f4735;border-radius:10px;padding:1rem}.demo-selected{font:700 .95rem Georgia,serif;color:#f3ddb0;margin-bottom:.7rem}.demo-action-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.demo-action-buttons button{background:#2a2b23;border:1px solid #6d6248;padding:.68rem .8rem;border-radius:5px;color:#f0e2c8;cursor:pointer;font-size:.78rem}.demo-action-buttons button:hover:not(:disabled){background:#46412c}.demo-action-buttons button[aria-pressed=true]{background:#74552b;border-color:#dab977}.demo-action-buttons button:disabled{opacity:.36;cursor:not-allowed}.demo-action-buttons .round-button{background:#4d3224;border-color:#a16e4b;margin-left:auto}.demo-instruction{color:#bdb7a7;font-size:.81rem;line-height:1.5;margin:.8rem 0 0;min-height:2.3em}.demo-log-title{margin-top:1.65rem!important}.demo-log{margin:0;padding:0 0 0 1.1rem;font-size:.71rem;line-height:1.55;color:#bdb5a0;max-height:280px;overflow-y:auto}.demo-log li{margin:0 0 .38rem}.demo-log li:first-child{color:#ead8af}.skirmish-footer-note{margin-top:1.3rem;font-size:.84rem;line-height:1.6;padding:1.1rem 1.2rem;border:1px solid #484133;border-radius:8px;color:#c5bcb0;background:#111511}.demo-ending:not([hidden]){margin-top:1.5rem;border:1px solid #b89c62;padding:2rem;background:linear-gradient(130deg,#2b2b21,#0c1714);border-radius:12px;text-align:center}.demo-ending h2{font-family:Georgia,serif;font-size:2rem;color:#f2d58b}.demo-ending .hero-actions{justify-content:center}
/* Homepage introduction */.story-hook{color:#dbc28e!important;font-family:Georgia,serif;font-style:italic;border-left:2px solid #89683a;padding-left:1rem;margin-top:1rem!important}.skirmish-teaser{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}.skirmish-teaser-art{position:relative;border:1px solid #544c37;padding:.45rem;background:#10140f;box-shadow:0 25px 60px #0009}.skirmish-teaser-art img{width:100%;min-height:310px;object-fit:cover;filter:brightness(.76) saturate(.72)}.skirmish-teaser-art span{position:absolute;bottom:1.4rem;left:1.4rem;font-size:.75rem;letter-spacing:.1em;background:#0b1010d9;padding:.6rem .9rem;border:1px solid #8e744d;color:#e5d4ae}.skirmish-teaser-copy h2{font:700 clamp(2rem,3.5vw,3.8rem)/1.07 Georgia,serif;margin:1rem 0}.skirmish-teaser-copy p{color:#bfb9a8;line-height:1.7}.skirmish-teaser-copy .note{font-size:.83rem;color:#a6a094}
@media(max-width:1220px){.battle-demo-layout{grid-template-columns:1fr 2fr}.demo-enemy-side{grid-column:1/-1}.demo-enemy-side .demo-roster{grid-template-columns:repeat(3,1fr)}.demo-enemy-side .demo-log{max-height:140px}}
@media(max-width:850px){.battle-demo-layout{grid-template-columns:1fr}.demo-army .demo-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.demo-army .unit-card{grid-template-columns:1fr}.unit-portrait{width:100%;height:65px}.skirmish-teaser{grid-template-columns:1fr}.skirmish-heading{align-items:start}}
@media(max-width:550px){.demo-army .demo-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-card{padding:.4rem}.unit-card h4{font-size:.7rem}.unit-card small,.unit-card .unit-detail{font-size:.6rem}.demo-army{padding:.65rem}.demo-board{--tile:42px;margin:0}.skirmish-heading{flex-direction:column}.demo-action-buttons .round-button{margin-left:0}.skirmish-section{width:calc(100% - 1rem)}.demo-selected{font-size:.85rem}}

@media(max-width:550px){.demo-army .demo-roster{grid-template-columns:1fr}.unit-card{grid-template-columns:62px minmax(0,1fr);padding:.6rem}.unit-portrait{width:62px;height:76px}.unit-card h4{font-size:.83rem}.unit-card small,.unit-card .unit-detail{font-size:.7rem}.unit-card .unit-numbers{font-size:.7rem}}


/* V5 — Legible 3v3 cards, larger full-body illustrations, correct closeups. */
.battle-demo-layout{
  grid-template-columns:minmax(265px,285px) minmax(0,1fr) minmax(265px,285px);
  column-gap:.85rem;
}
.demo-army{padding:.75rem}
.demo-army h3{margin-bottom:.75rem}
.demo-roster{gap:.7rem}
.unit-card{
  box-sizing:border-box;
  grid-template-columns:90px minmax(0,1fr);
  column-gap:.7rem;
  row-gap:.5rem;
  padding:.65rem;
}
.unit-portrait{box-sizing:border-box;width:90px;height:119px;border-radius:5px}
.unit-portrait img{width:100%;height:100%;display:block}
.hero-portrait img,.enemy-portrait img{
  object-fit:contain;
  object-position:center center;
  transform:none;
  padding:0;
}
.hero-portrait{background:linear-gradient(160deg,#313430,#131715)}
.enemy-portrait{background:linear-gradient(160deg,#362e27,#1b1715)}
.unit-card h4{font-size:.87rem;line-height:1.25;margin:0 0 .25rem}
.unit-card small{font-size:.72rem;line-height:1.35}
.unit-hp{display:block;height:7px;margin:.65rem 0 .45rem}
.unit-numbers{display:flex;gap:.28rem .55rem;font-size:.72rem;line-height:1.35}
.unit-numbers span,.unit-numbers b{white-space:nowrap}
.unit-card .unit-detail{
  box-sizing:border-box;
  grid-column:1/-1;
  display:block;
  padding-top:.5rem;
  border-top:1px solid rgba(216,184,123,.17);
  margin-top:0;
  color:#cfc5b0;
  font-size:.72rem;
  line-height:1.4;
  overflow-wrap:normal;
}
.unit-detail strong{display:block;color:#e9d09a;font:.68rem/1.3 Inter,Arial,sans-serif;font-weight:700;letter-spacing:.025em;margin-bottom:.16rem}
.demo-board{--tile:clamp(43px,4.92vw,69px)}
.demo-piece.ally img{object-fit:cover;object-position:center 16%;transform:scale(1.055)}
/* Each enemy now has a dedicated transparent upper-body asset. */
.demo-piece.enemy img{
  object-fit:cover;object-position:center top;
  transform:scale(1.03);
  background:none;
  padding:0;
}
@media(max-width:1280px){
 .battle-demo-layout{grid-template-columns:minmax(270px,.86fr) minmax(0,2.14fr)}
 .demo-enemy-side{grid-column:1/-1}
 .demo-enemy-side .demo-roster{grid-template-columns:repeat(3,minmax(0,1fr))}
 .demo-enemy-side .unit-card{grid-template-columns:80px minmax(0,1fr)}
 .demo-enemy-side .unit-portrait{width:80px;height:105px}
}
@media(max-width:900px){
 .battle-demo-layout{grid-template-columns:minmax(0,1fr)}
 .demo-enemy-side{grid-column:auto}
 .demo-army .demo-roster{grid-template-columns:repeat(3,minmax(0,1fr))}
 .demo-army .unit-card,.demo-enemy-side .unit-card{grid-template-columns:75px minmax(0,1fr)}
 .demo-army .unit-portrait,.demo-enemy-side .unit-portrait{width:75px;height:100px}
 .demo-board{--tile:clamp(48px,7.7vw,69px)}
}
@media(max-width:680px){
 .demo-army .demo-roster,.demo-enemy-side .demo-roster{grid-template-columns:1fr}
 .demo-army .unit-card,.demo-enemy-side .unit-card{grid-template-columns:90px minmax(0,1fr);padding:.65rem}
 .demo-army .unit-portrait,.demo-enemy-side .unit-portrait{width:90px;height:119px}
 .demo-board{--tile:50px;margin:0}
 .demo-board-scroll{overflow-x:auto}
}


/* V6 — Ending screen */
.demo-ending:not([hidden]){margin-top:1.5rem;border:1px solid #b89c62;padding:2rem;background:radial-gradient(circle at top,rgba(132,102,47,.17),transparent 26%),linear-gradient(145deg,#28271c,#0d1613);border-radius:14px;text-align:center;box-shadow:0 22px 48px rgba(0,0,0,.28)}
.ending-kicker{display:inline-block;margin-bottom:.5rem;padding:.35rem .7rem;border:1px solid rgba(216,178,104,.45);border-radius:999px;font:.72rem/1 Inter,Arial,sans-serif;letter-spacing:.12em;color:#dfc893;background:rgba(12,18,18,.55)}
.demo-ending h2{font-family:Georgia,serif;font-size:2rem;color:#f2d58b;margin:.4rem 0}.demo-ending p{max-width:62ch;margin:.65rem auto 0;color:#c8bfaf;line-height:1.65}
.ending-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.3rem 0 .85rem}.ending-summary article{padding:.9rem .7rem;border:1px solid rgba(202,170,109,.24);border-radius:10px;background:rgba(13,17,17,.58)}.ending-summary small{display:block;color:#9e978c;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.ending-summary strong{display:block;margin-top:.35rem;font:700 1.35rem/1 Georgia,serif;color:#f4deaa}
.ending-flavor{font-style:italic;color:#ded1ae!important}.demo-ending .hero-actions{justify-content:center;gap:.7rem;flex-wrap:wrap}
@media(max-width:760px){.ending-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* V9 — battle motion and impact effects */
.demo-field-frame{position:relative;overflow:visible}
.demo-board{isolation:isolate}
.demo-cell{overflow:visible}
.demo-piece{will-change:transform,filter,opacity;z-index:2}
.demo-piece.fx-move{z-index:8;animation:anyardMove .34s cubic-bezier(.2,.8,.2,1) both}
.demo-piece.fx-lunge{z-index:8;animation:anyardLunge .30s cubic-bezier(.2,.8,.2,1) both}
.demo-piece.fx-hit{animation:anyardHit .34s ease-out both}
.demo-piece.fx-critical-hit{filter:brightness(1.25) contrast(1.08)}
.demo-piece.fx-death{pointer-events:none;z-index:5;animation:anyardDeath .62s ease-in both;filter:grayscale(.55)}
.demo-piece.fx-hit::after{content:'';position:absolute;inset:0;border-radius:inherit;background:rgba(255,235,207,.58);mix-blend-mode:screen;animation:anyardFlash .28s ease-out both;pointer-events:none}
.demo-piece.fx-critical-hit::after{background:rgba(255,225,155,.82)}
.battle-float{position:absolute;left:50%;top:34%;z-index:15;pointer-events:none;font:800 clamp(.72rem,1.15vw,1rem)/1 Inter,Arial,sans-serif;text-shadow:0 2px 4px #000,0 0 6px #000;white-space:nowrap;animation:anyardFloat .68s ease-out both}
.battle-float.damage{color:#ffd0c0}.battle-float.critical{color:#ffe18b;font-size:clamp(.86rem,1.35vw,1.16rem)}.battle-float.heal{color:#b8f6c0}.battle-float.buff{color:#f2db91}.battle-float.debuff{color:#dfb0ff}
.battle-burst{position:absolute;left:50%;top:8%;z-index:16;pointer-events:none;transform:translateX(-50%);font:800 .56rem/1 Inter,Arial,sans-serif;letter-spacing:.09em;text-shadow:0 2px 5px #000;animation:anyardBurst .56s ease-out both;white-space:nowrap}.battle-burst.burst{color:#ffe4a1}.battle-burst.element{color:#a9d9ff}
.fx-heal-cell::after,.fx-buff-cell::after,.fx-break-cell::after,.fx-trap-trigger::after,.fx-trap-set::before{content:'';position:absolute;inset:4%;border-radius:8px;pointer-events:none;z-index:1}
.fx-heal-cell::after{border:2px solid rgba(137,223,153,.75);box-shadow:0 0 18px rgba(88,207,123,.5),inset 0 0 12px rgba(88,207,123,.18);animation:anyardRing .58s ease-out both}
.fx-buff-cell::after{border:2px solid rgba(225,185,93,.8);box-shadow:0 0 20px rgba(225,185,93,.42),inset 0 0 13px rgba(225,185,93,.15);animation:anyardRing .58s ease-out both}
.fx-break-cell::after{border:2px solid rgba(188,126,224,.8);background:linear-gradient(135deg,transparent 45%,rgba(226,194,241,.72) 47%,rgba(226,194,241,.72) 50%,transparent 52%),linear-gradient(45deg,transparent 54%,rgba(226,194,241,.55) 56%,rgba(226,194,241,.55) 59%,transparent 61%);animation:anyardBreak .5s ease-out both}
.fx-trap-set::before{inset:18%;border:1px dashed rgba(233,178,76,.92);box-shadow:0 0 12px rgba(220,157,54,.35);animation:anyardTrapSet .52s ease-out both}
.fx-trap-trigger::after{inset:-4%;background:radial-gradient(circle,rgba(226,168,70,.7) 0 12%,rgba(143,87,36,.46) 24%,transparent 62%);animation:anyardTrapBoom .5s ease-out both}
.heal-wave{position:absolute;z-index:3;left:50%;top:50%;width:38%;aspect-ratio:1;border:2px solid rgba(149,231,172,.75);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 14px rgba(113,214,146,.32);pointer-events:none;animation:anyardHealWave .72s ease-out both}
.round-banner,.battle-outcome-flash{position:absolute;left:50%;top:50%;z-index:40;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.94);text-align:center;white-space:nowrap}
.round-banner{padding:.6rem 1.35rem;border-top:1px solid rgba(224,195,129,.55);border-bottom:1px solid rgba(224,195,129,.55);background:linear-gradient(90deg,transparent,rgba(7,12,12,.9) 18%,rgba(7,12,12,.9) 82%,transparent);color:#f0d59a;font:700 clamp(.95rem,2vw,1.35rem)/1 Georgia,serif;letter-spacing:.18em;text-shadow:0 2px 8px #000}
.round-banner.is-showing{animation:anyardBanner .76s ease both}
.battle-outcome-flash{width:min(88%,620px);padding:1.05rem 1.4rem;background:linear-gradient(90deg,transparent,rgba(6,11,10,.94) 12%,rgba(6,11,10,.94) 88%,transparent);font:700 clamp(1.2rem,2.8vw,2rem)/1 Georgia,serif;letter-spacing:.12em;text-shadow:0 2px 10px #000;border-top:1px solid rgba(225,188,108,.6);border-bottom:1px solid rgba(225,188,108,.6)}
.battle-outcome-flash.win{color:#f1d897}.battle-outcome-flash.lose{color:#d9a69d;border-color:rgba(178,104,91,.62)}.battle-outcome-flash.is-showing{animation:anyardOutcome .9s ease both}
.demo-ending.ending-enter{animation:anyardEnding .55s ease-out both}
@keyframes anyardMove{from{transform:translate(var(--fx-x),var(--fx-y)) scale(.94);filter:brightness(.86)}to{transform:translate(0,0) scale(1);filter:brightness(1)}}
@keyframes anyardLunge{0%{transform:translate(0,0)}45%{transform:translate(var(--fx-x),var(--fx-y)) scale(1.06)}100%{transform:translate(0,0)}}
@keyframes anyardHit{0%,100%{transform:translateX(0)}22%{transform:translateX(-6%)}42%{transform:translateX(5%)}62%{transform:translateX(-3%)}}
@keyframes anyardFlash{0%{opacity:0}22%{opacity:1}100%{opacity:0}}
@keyframes anyardDeath{0%{opacity:1;transform:scale(1);filter:grayscale(.2) brightness(1)}45%{opacity:.72;transform:scale(.97) rotate(-2deg);filter:grayscale(.7) brightness(.72)}100%{opacity:0;transform:scale(.82) translateY(12%);filter:grayscale(1) brightness(.42)}}
@keyframes anyardFloat{0%{opacity:0;transform:translate(-50%,10px) scale(.88)}18%{opacity:1;transform:translate(-50%,0) scale(1.08)}100%{opacity:0;transform:translate(-50%,-28px) scale(.96)}}
@keyframes anyardBurst{0%{opacity:0;transform:translate(-50%,8px) scale(.85)}25%{opacity:1;transform:translate(-50%,0) scale(1.06)}100%{opacity:0;transform:translate(-50%,-15px) scale(.96)}}
@keyframes anyardRing{0%{opacity:0;transform:scale(.72)}25%{opacity:1}100%{opacity:0;transform:scale(1.18)}}
@keyframes anyardBreak{0%{opacity:0;transform:scale(.85) rotate(-3deg)}20%{opacity:1}100%{opacity:0;transform:scale(1.1) rotate(2deg)}}
@keyframes anyardTrapSet{0%{opacity:0;transform:scale(.55) rotate(-8deg)}35%{opacity:1}100%{opacity:0;transform:scale(1.05) rotate(0)}}
@keyframes anyardTrapBoom{0%{opacity:0;transform:scale(.35)}24%{opacity:1}100%{opacity:0;transform:scale(1.45)}}
@keyframes anyardHealWave{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}24%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) scale(3.8)}}
@keyframes anyardBanner{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes anyardOutcome{0%{opacity:0;transform:translate(-50%,-50%) scale(.88)}16%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes anyardEnding{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.demo-piece.fx-move,.demo-piece.fx-lunge,.demo-piece.fx-hit,.demo-piece.fx-death,.battle-float,.battle-burst,.fx-heal-cell::after,.fx-buff-cell::after,.fx-break-cell::after,.fx-trap-trigger::after,.fx-trap-set::before,.heal-wave,.round-banner.is-showing,.battle-outcome-flash.is-showing,.demo-ending.ending-enter{animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* V10 combat polish */
.demo-piece.enemy-ladron_camino img{object-position:58% 1%;transform:scale(1.18)}
.demo-piece.enemy-picaro img{object-position:42% 1%;transform:scale(1.18)}
.demo-piece.enemy-camorrista img{object-position:50% 1%;transform:scale(1.17)}
.demo-piece.fx-move{z-index:8;animation:anyardMove .44s cubic-bezier(.18,.8,.22,1) both}
.demo-piece.fx-lunge{z-index:8;animation:anyardLunge .38s cubic-bezier(.18,.82,.24,1) both}
.demo-piece.fx-hit{animation:anyardHit .40s ease-out both}
.demo-piece.fx-hit::before{content:'';position:absolute;left:18%;top:18%;width:64%;height:64%;pointer-events:none;background:radial-gradient(circle,rgba(255,247,225,.92) 0 10%,rgba(255,214,144,.78) 18%,rgba(255,160,106,.28) 40%,transparent 68%);mix-blend-mode:screen;animation:anyardSpark .34s ease-out both}
.demo-piece.fx-hit::after{content:'';position:absolute;inset:0;border-radius:inherit;background:rgba(255,235,207,.58);mix-blend-mode:screen;animation:anyardFlash .32s ease-out both;pointer-events:none}
.battle-float{animation:anyardFloat .82s ease-out both}
.battle-burst{animation:anyardBurst .64s ease-out both}
.fx-hit-cell::before,.fx-pincer-cell::after{content:'';position:absolute;inset:8%;border-radius:10px;pointer-events:none;z-index:1}
.fx-hit-cell::before{background:radial-gradient(circle,rgba(255,225,186,.28),transparent 65%);animation:anyardCellPulse .36s ease-out both}
.fx-pincer-cell::after{border:2px solid rgba(225,174,92,.72);box-shadow:0 0 16px rgba(225,174,92,.25),inset 0 0 10px rgba(225,174,92,.16);animation:anyardRing .6s ease-out both}
@keyframes anyardSpark{0%{transform:scale(.5);opacity:0}45%{transform:scale(1.18);opacity:1}100%{transform:scale(1.35);opacity:0}}
@keyframes anyardCellPulse{0%{transform:scale(.8);opacity:0}35%{transform:scale(1);opacity:.95}100%{transform:scale(1.18);opacity:0}}

/* V11 — sequenced combat VFX, enemy framing and pincer links */
.demo-piece.enemy-ladron_camino img{object-position:60% 0%;transform:scale(1.20)}
.demo-piece.enemy-picaro img{object-position:40% 0%;transform:scale(1.20)}
.demo-piece.enemy-camorrista img{object-position:50% 0%;transform:scale(1.18)}
.vfx-impact,.vfx-sparks,.vfx-heal,.vfx-buff,.vfx-debuff,.vfx-trap-set,.vfx-trap-boom,.vfx-pincer-node,.vfx-support-label{position:absolute;pointer-events:none;z-index:20}
.vfx-impact{inset:17%;border-radius:50%;background:radial-gradient(circle,rgba(255,246,222,.98) 0 7%,rgba(255,198,120,.86) 14%,rgba(208,89,55,.42) 31%,transparent 67%);animation:v11Impact .52s ease-out both;mix-blend-mode:screen}
.vfx-sparks{left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;box-shadow:-24px -9px 0 -2px #f6d79a,24px 7px 0 -2px #eaa366,7px -23px 0 -2px #fff0bf,-16px 20px 0 -2px #d57b50,22px -20px 0 -3px #f1c176;animation:v11Sparks .52s ease-out both}
.vfx-heal{inset:10%;border:2px solid rgba(142,234,167,.9);border-radius:50%;box-shadow:0 0 22px rgba(87,211,125,.55),inset 0 0 16px rgba(87,211,125,.2);animation:v11Ring .65s ease-out both}
.vfx-buff{inset:9%;border:2px solid rgba(232,195,105,.9);border-radius:10px;box-shadow:0 0 20px rgba(232,195,105,.42),inset 0 0 14px rgba(232,195,105,.18);animation:v11Ring .65s ease-out both}
.vfx-debuff{inset:10%;border:2px solid rgba(195,128,229,.9);border-radius:10px;background:linear-gradient(135deg,transparent 44%,rgba(232,204,247,.72) 47%,rgba(232,204,247,.72) 50%,transparent 53%);animation:v11Break .65s ease-out both}
.vfx-trap-set{inset:22%;border:1px dashed rgba(235,181,73,.95);border-radius:50%;box-shadow:0 0 14px rgba(226,159,54,.42);animation:v11TrapSet .56s ease-out both}
.vfx-trap-boom{inset:-6%;border-radius:50%;background:radial-gradient(circle,rgba(235,185,87,.8) 0 12%,rgba(139,82,35,.5) 28%,transparent 66%);animation:v11Boom .65s ease-out both}
.vfx-pincer-node{inset:6%;border:2px solid rgba(236,189,99,.82);border-radius:10px;box-shadow:0 0 18px rgba(236,189,99,.32),inset 0 0 10px rgba(236,189,99,.15);animation:v11PincerNode .76s ease-out both}
.vfx-support-label{left:50%;top:3px;transform:translateX(-50%);padding:2px 4px;border:1px solid rgba(238,198,117,.7);background:rgba(10,13,13,.86);color:#f3d89a;font:800 .42rem/1 Inter,Arial,sans-serif;letter-spacing:.08em;animation:v11Support .46s ease-out both}
.vfx-pincer-lines{position:absolute;inset:0;width:100%;height:100%;z-index:18;pointer-events:none;overflow:visible}
.vfx-pincer-lines line{stroke:rgba(237,190,94,.78);stroke-width:3;stroke-linecap:round;stroke-dasharray:8 7;filter:drop-shadow(0 0 4px rgba(237,190,94,.5));animation:v11Line .76s ease-out both}
.battle-burst.special{color:#ffd79a}.battle-burst.pincer{color:#ffd37f;font-size:.64rem}
.vfx-death-ghost{position:absolute;inset:5%;width:90%;height:90%;z-index:19;pointer-events:none;animation:v11Death .72s ease-in both;filter:grayscale(.5)}
.vfx-death-ghost img{width:100%;height:100%;object-fit:cover}
@keyframes v11Impact{0%{transform:scale(.35);opacity:0}35%{transform:scale(1.05);opacity:1}100%{transform:scale(1.45);opacity:0}}
@keyframes v11Sparks{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}35%{opacity:1}100%{transform:translate(-50%,-50%) scale(1.45);opacity:0}}
@keyframes v11Ring{0%{transform:scale(.72);opacity:0}35%{opacity:1}100%{transform:scale(1.2);opacity:0}}
@keyframes v11Break{0%{transform:scale(.8) rotate(-2deg);opacity:0}35%{opacity:1}100%{transform:scale(1.14) rotate(2deg);opacity:0}}
@keyframes v11TrapSet{0%{transform:scale(.6) rotate(-18deg);opacity:0}55%{opacity:1}100%{transform:scale(1.1) rotate(0);opacity:0}}
@keyframes v11Boom{0%{transform:scale(.35);opacity:0}45%{opacity:1}100%{transform:scale(1.3);opacity:0}}
@keyframes v11PincerNode{0%{transform:scale(.8);opacity:0}35%{opacity:1}100%{transform:scale(1.1);opacity:0}}
@keyframes v11Support{0%{transform:translate(-50%,-6px);opacity:0}35%{transform:translate(-50%,0);opacity:1}100%{transform:translate(-50%,-5px);opacity:0}}
@keyframes v11Line{0%{stroke-dashoffset:40;opacity:0}25%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes v11Death{0%{transform:scale(1);opacity:1}45%{transform:scale(.95) rotate(-3deg);opacity:.7}100%{transform:scale(.82) translateY(12px);opacity:0}}
@media(prefers-reduced-motion:reduce){.vfx-impact,.vfx-sparks,.vfx-heal,.vfx-buff,.vfx-debuff,.vfx-trap-set,.vfx-trap-boom,.vfx-pincer-node,.vfx-support-label,.vfx-pincer-lines line,.vfx-death-ghost{animation-duration:.01ms!important}}

/* V17 · Hojas horizontales de 8 fotogramas, una por elemento y tipo. */
.skirmish-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}
.vfx-toggle[aria-pressed="true"]{border-color:#c7a763;background:rgba(199,167,99,.11);color:#f1ddb0}
.vfx-toggle[aria-pressed="false"]{opacity:.72}
.vfx-preview-control{display:flex;align-items:center;gap:.4rem;padding:.34rem .5rem;border:1px solid rgba(199,167,99,.34);background:rgba(15,15,13,.58);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#cdbd98}
.vfx-preview-control select{min-width:88px;padding:.36rem .45rem;border:1px solid rgba(199,167,99,.32);background:#171713;color:#ead9b1;font:inherit;text-transform:none;letter-spacing:0;border-radius:2px}
.vfx-preview-control select:focus{outline:1px solid #c7a763;outline-offset:1px}
.demo-board{--vfx-opacity:1;overflow:hidden}
.vfx-attack-sprite{position:absolute;left:0;top:0;z-index:24;width:calc(var(--tile) * 1.62);height:calc(var(--tile) * 1.62);pointer-events:none;background-repeat:no-repeat;background-size:800% 100%;background-position:0 0;transform-origin:50% 50%;filter:drop-shadow(0 0 4px rgba(255,255,255,.10));opacity:var(--vfx-opacity);will-change:background-position,opacity,transform,left,top;isolation:isolate}
.vfx-attack-sprite.vfx-style-sword{width:calc(var(--tile) * 3);height:calc(var(--tile) * 3)}
.vfx-attack-sprite.vfx-style-spear{width:calc(var(--tile) * 3);height:calc(var(--tile) * 3)}
.vfx-attack-sprite.vfx-style-magic{width:calc(var(--tile) * 3.6);height:calc(var(--tile) * 3.6)}
.vfx-attack-sprite.vfx-style-distance{width:calc(var(--tile) * 2.8);height:calc(var(--tile) * 2.8)}
.vfx-attack-sprite.is-finishing{transition:opacity .09s ease-out;opacity:0!important}
.demo-cell.vfx-caster-pulse .demo-piece{filter:brightness(1.2) drop-shadow(0 0 7px rgba(235,219,168,.38))}
.demo-cell.vfx-target-pulse{z-index:4}
.demo-cell.vfx-target-pulse::before{content:'';position:absolute;inset:5%;z-index:12;border-radius:50%;border:1px solid rgba(255,235,195,.48);box-shadow:0 0 13px rgba(255,221,158,.25);animation:v12TargetPulse .48s ease-out both;pointer-events:none}
@keyframes v12TargetPulse{0%{transform:scale(.62);opacity:0}30%{opacity:1}100%{transform:scale(1.18);opacity:0}}
@media(max-width:700px){.skirmish-heading-actions{width:100%;justify-content:flex-start}.vfx-preview-control{order:3;width:100%;justify-content:flex-start}.vfx-attack-sprite.vfx-style-magic{width:calc(var(--tile) * 3.6);height:calc(var(--tile) * 3.6)}.vfx-attack-sprite.vfx-style-distance{width:calc(var(--tile) * 2.8);height:calc(var(--tile) * 2.8)}}
@media(prefers-reduced-motion:reduce){.vfx-attack-sprite{transition:none!important}.demo-cell.vfx-target-pulse::before{animation-duration:.01ms!important}}


/* Bosque denso como bloqueo transitable: mezcla de follaje y terreno, sin placas oscuras. */
.demo-cell.is-rock{
  overflow:hidden;
  border-color:rgba(35,48,31,.34);
  background:linear-gradient(135deg,rgba(18,28,17,.16),rgba(24,34,18,.22));
  box-shadow:inset 0 0 8px rgba(12,18,12,.28);
  cursor:not-allowed;
}
.demo-cell.is-rock::before{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:42% 58% 46% 54% / 55% 42% 58% 45%;
  background:
    radial-gradient(ellipse at 22% 35%,#738052 0 8%,#52633e 9% 16%,transparent 18%),
    radial-gradient(ellipse at 62% 25%,#68794a 0 9%,#475b37 10% 18%,transparent 20%),
    radial-gradient(ellipse at 78% 60%,#657746 0 10%,#405433 11% 20%,transparent 22%),
    radial-gradient(ellipse at 37% 72%,#5f7042 0 11%,#394d31 12% 21%,transparent 23%),
    radial-gradient(ellipse at 51% 49%,rgba(30,43,28,.96),rgba(35,50,30,.4) 62%,transparent 75%);
  filter:drop-shadow(0 2px 2px rgba(5,9,5,.62));
  opacity:.95;
  pointer-events:none;
}
.demo-cell.is-rock:nth-child(10n+2)::before{transform:rotate(13deg) scale(.94)}
.demo-cell.is-rock:nth-child(10n+3)::before{transform:rotate(-9deg) scale(1.04)}
.demo-cell.is-rock:nth-child(10n+4)::before{transform:rotate(7deg) scale(.92)}
.demo-cell.attack-range{background:rgba(255,186,92,.10);border-color:rgba(255,190,98,.45);box-shadow:inset 0 0 0 1px rgba(255,190,98,.15)}
