.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.run-hud{position:relative;isolation:isolate;border-radius:14px;transition:background .18s}.enemy-card{isolation:isolate;overflow:visible}.enemy-card>.portrait{z-index:2}.enemy-card .meter-track{position:relative}.enemy-card .meter-track:before{content:'';position:absolute;inset:0;width:var(--hp-trail,0%);background:#f1c55d;transition:width .65s .12s}.enemy-card .meter-track>span{position:relative;z-index:1;transition:width .22s ease-out}.run-hud.healing{background:#b0d79a35}.run-hud.guarding{background:#8abddd3b}.run-hud.taking-hit{background:#e1857b40}.battle-beat{position:absolute;left:50%;top:21%;transform:translate(-50%,-50%);font-size:11px;font-weight:900;letter-spacing:1px;color:#906847;background:#fff9eced;border:1px solid #e0c8a6;padding:6px 14px;border-radius:99px;z-index:8;white-space:nowrap;box-shadow:0 3px 10px #59403110}.battle-projectile{position:fixed;z-index:1000;pointer-events:none;width:38px;height:38px;display:grid;place-items:center;filter:drop-shadow(0 0 8px #e8b14a);will-change:transform,opacity}.battle-projectile svg{width:100%;height:100%}.battle-projectile:before{content:'';position:absolute;width:65px;height:8px;background:linear-gradient(90deg,transparent,#ffcb67);right:40%;top:45%;transform:rotate(var(--travel-angle));transform-origin:right center;border-radius:100%;opacity:.85}.battle-projectile.ranged{filter:drop-shadow(0 0 7px #8cc272)}.battle-projectile.ranged:before{background:linear-gradient(90deg,transparent,#94bf71);height:4px}.battle-projectile.magic{filter:drop-shadow(0 0 12px #bf83f5);background:#e5b7ff;border-radius:50%;box-shadow:0 0 25px #b27bea99}.battle-projectile.magic:before{background:linear-gradient(90deg,transparent,#dbb2ff);height:15px}.battle-projectile.enemy{filter:drop-shadow(0 0 7px #e68476)}.battle-projectile.enemy:before{background:linear-gradient(90deg,transparent,#e29480)}.tile.firing{z-index:3;box-shadow:0 0 0 3px #f0c767,0 0 21px #f7ce5e90;transform:translateY(-4px) scale(1.04);background:#fff7d7}.impact-burst{position:absolute;z-index:6;pointer-events:none;width:0;height:0;--fx-time:400ms}.impact-burst .slash{position:absolute;width:135px;height:13px;left:-68px;top:-7px;background:linear-gradient(90deg,transparent 2%,#fff9d0 25%,white 52%,#ffe0a0 80%,transparent);border-radius:100%;box-shadow:0 0 12px #ffd37a;transform:rotate(-40deg);animation:slash-strike var(--fx-time) ease-out both}.impact-burst .slash.two{transform:rotate(42deg);width:106px;left:-53px;animation-delay:55ms}.impact-burst .arrow-impact{position:absolute;left:-8px;top:-32px;width:16px;height:64px;background:#f6ffcd;clip-path:polygon(50% 0,100% 40%,70% 40%,70% 100%,30% 100%,30% 40%,0 40%);transform:rotate(65deg);animation:impact-flash var(--fx-time) ease-out both}.impact-ring{position:absolute;left:-40px;top:-40px;width:80px;height:80px;border:5px solid var(--hit-color);border-radius:50%;box-shadow:0 0 22px var(--hit-color),inset 0 0 17px var(--hit-color);animation:ring-strike var(--fx-time) ease-out both}.impact-core{position:absolute;left:-28px;top:-28px;width:56px;height:56px;background:radial-gradient(white,var(--hit-color),transparent 72%);animation:ring-strike var(--fx-time) ease-out both}.impact-particle{position:absolute;left:-3px;top:-3px;width:6px;height:6px;background:var(--hit-color);border-radius:2px;box-shadow:0 0 6px var(--hit-color);animation:impact-particle var(--fx-time) ease-out both}.impact-burst.poison .impact-particle{border-radius:50%;width:9px;height:9px}.impact-burst.bleed .impact-particle{border-radius:50% 50% 50% 0}.impact-number{position:absolute;pointer-events:none;z-index:12;text-align:center;white-space:nowrap;will-change:transform,opacity;color:var(--hit-color);text-shadow:-2px -2px 0 #503647,2px -2px 0 #503647,-2px 2px 0 #503647,2px 2px 0 #503647,0 5px 10px #39293360}.impact-number b{font-size:40px;font-weight:1000;letter-spacing:-2px;line-height:1.1}.impact-number small{display:block;font-size:10px;font-weight:900;letter-spacing:1px;margin-top:4px;text-shadow:0 1px 4px #382c35;background:#503647e8;color:#fff6df;padding:3px 8px;border-radius:99px;width:max-content;margin-left:auto;margin-right:auto}.impact-number.heal b{font-size:29px}.impact-number.enemy b,.impact-number.status b{font-size:33px}.impact-number.support b{font-size:23px;letter-spacing:0}.enemy-defeated{background:radial-gradient(ellipse at center,#fff6c0,#ead7b34d 70%)}.enemy-defeated .battle-beat{top:45%;font-size:28px;letter-spacing:6px;color:#916639;background:#fff1bf;box-shadow:0 0 45px #ffe191;border-color:#d2a964;padding:12px 26px}.enemy-defeated>.portrait{pointer-events:none}.combat-layout.resolving .board-hint{color:var(--tone-dark)}
@keyframes slash-strike{0%{opacity:0;scale:.1 1}20%{opacity:1;scale:1.3 1}65%{opacity:1;scale:1 1}100%{opacity:0;scale:1.15 .1}}@keyframes ring-strike{0%{opacity:0;transform:scale(.15)}20%{opacity:1}100%{opacity:0;transform:scale(1.9)}}@keyframes impact-flash{0%{opacity:0;scale:1.5}20%{opacity:1;scale:1}100%{opacity:0;scale:.6}}@keyframes impact-particle{0%{opacity:0;transform:translate(0,0) scale(.6)}18%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.25)}}
@media(max-width:800px){.combat-layout{display:flex;flex-direction:column}.combat-layout>.reels-panel{width:100%;order:1}.combat-side{display:contents}.combat-side .enemy-card{order:0;position:sticky;top:6px;z-index:5;width:100%;grid-template-columns:105px 1fr;gap:0 9px;padding:10px 15px;background:linear-gradient(135deg,#fffaf4,#e8eddd);box-shadow:0 5px 20px #4d303f22}.enemy-card .enemy-heading{grid-column:2;grid-row:1;justify-content:flex-start;gap:8px}.enemy-card .enemy-heading>span{font-size:8px;padding:3px 5px}.enemy-card .enemy-heading>b{font-size:12px}.combat-side .enemy-card>.portrait{grid-column:1;grid-row:1/6;width:92px;margin:5px auto}.enemy-card .intent{grid-column:2;grid-row:2;max-width:100%;font-size:9px;margin:5px 0 0;white-space:normal}.enemy-card .enemy-effect{grid-column:2;grid-row:3;font-size:9px;margin:3px 0}.enemy-card .health-meter{grid-column:2;grid-row:4;margin:3px 0 0}.enemy-card .status-row{grid-column:2;grid-row:5;margin-top:3px}.enemy-card .meter-track{margin-top:3px}.enemy-card .health-meter>small{font-size:10px}.enemy-card .status{font-size:8px;padding:2px 5px}.combat-side>.player-status{order:2;width:100%}.combat-side>.rune-bar{order:3;width:100%;grid-template-columns:repeat(3,1fr)}.combat-side>.journal{order:4;width:100%}.battle-beat{top:12px;left:63px;font-size:8px;padding:3px 7px}.impact-number b{font-size:30px}.impact-burst .slash{width:100px;left:-50px}.enemy-defeated .battle-beat{left:50%;font-size:20px;padding:7px 20px}.rune-slot.empty{min-height:48px}}
@media(prefers-reduced-motion:reduce){.battle-projectile,.impact-particle,.slash{display:none!important}.enemy-card .meter-track:before,.enemy-card .meter-track>span{transition:none!important}.tile.firing{transform:none}.impact-burst .impact-ring,.impact-burst .impact-core{animation:none;opacity:.25}.run-hud{transition:none}.impact-number{will-change:auto}}
