/* Dos bancadas independientes y una mesa central; todos los efectos son decorativos. */
.screen.in-battle{background:#17100e;--orator-height:clamp(62px,calc((100dvh - 540px)/2),138px);--hand-width:clamp(58px,10.3dvh,84px)}
.screen.in-battle .content{padding:calc(var(--sat) + 3px) 8px calc(var(--sab) + 4px)}
.screen.in-battle .battle-wrap{position:relative;isolation:isolate;gap:5px;padding:9px 8px 7px;border:1px solid #9a794c80;border-radius:15px;overflow:hidden;overflow:clip;overscroll-behavior:none;box-shadow:inset 0 0 30px #0009,0 4px 12px #0008;--battle-split-y:42%}
.battle-wrap> :not(.battle-backdrop){position:relative;z-index:1;flex-shrink:0}
.battle-backdrop{position:absolute;left:0;right:0;pointer-events:none;z-index:0;background-color:#231c20;background-image:radial-gradient(ellipse at 50% 25%,#bd7f4720,transparent 70%),repeating-radial-gradient(ellipse 330px 170px at 50% -100px,transparent 0 32px,#40291ecc 34px 37px,#ce9e5d2e 38px 40px,transparent 41px 73px),linear-gradient(110deg,#271015,#4b2226 45%,#211017);box-shadow:inset 0 0 45px #000a}
.battle-backdrop.enemy{top:0;height:var(--battle-split-y);border-bottom:5px solid #62452f}
.battle-backdrop.player{top:var(--battle-split-y);bottom:0;background-image:radial-gradient(ellipse at 50% 10%,#547fa226,transparent 70%),repeating-radial-gradient(ellipse 330px 170px at 50% calc(100% + 100px),transparent 0 32px,#30271ecc 34px 37px,#b19a6b2e 38px 40px,transparent 41px 73px),linear-gradient(110deg,#0e1927,#24344a 45%,#101722)}
.battle-wrap[data-player-theme=marble] .battle-backdrop.player,.battle-wrap[data-enemy-theme=marble] .battle-backdrop.enemy{background-color:#182c3e;background-image:linear-gradient(128deg,transparent 0 22%,#e8d2a125 22.2%,transparent 22.8% 57%,#bdc9d32b 57.2%,transparent 58%),repeating-linear-gradient(146deg,transparent 0 53px,#8dbbcd16 54px,#adc8cf25 55px,transparent 57px 122px),radial-gradient(ellipse at 70% 30%,#6f9aab55,transparent 70%),linear-gradient(125deg,#0d1d2b,#334e61,#101e2e)}
.screen.in-battle .battle-meta{gap:4px;min-height:33px;align-content:center;border-bottom:1px solid #bc9c683b;padding-bottom:5px}
.battle-meta>.bar{gap:4px}.battle-meta .pill{font-size:calc(8px * var(--ui-text-scale,1));padding:3px 6px;letter-spacing:.2px}.battle-meta .gab{gap:3px}.battle-meta .gab span{font-size:calc(8px * var(--ui-text-scale,1));background:#0b101bbc;padding:2px 4px;border-color:#9d8c7238}
.screen.in-battle .battle-resources{margin:0;text-align:center;font-size:calc(10px * var(--ui-text-scale,1));line-height:1.4;color:#dbced0;min-height:16px;text-wrap:balance}
.screen.in-battle .own-resources{color:#c9d8e5}.battle-resources .crystal{vertical-align:middle}
.screen.in-battle .tribuna{padding:3px 0;border-radius:9px;transition:box-shadow .18s ease;background:linear-gradient(180deg,#ffffff05,#00000018)}
.battle-wrap[data-turn=p] [data-tutorial=player],.battle-wrap[data-turn=e] [data-tutorial=enemy]{box-shadow:0 0 0 1px #e3c4855c,0 0 12px #e0ba6120}
.screen.in-battle .slot{color:#b8a78688;border-color:#b9a47d4a;background:#090e1b55;border-radius:8px;box-shadow:inset 0 0 14px #0005}
.screen.in-battle .battle-hud{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:9px;width:min(100%,420px);align-self:center;box-sizing:border-box;padding:9px 10px;border:1px solid #ac8c58;border-radius:12px;background:linear-gradient(115deg,#392b23,#171e2b 40%,#30271f);box-shadow:0 3px 14px #0009,inset 0 1px #ffe3a32b}
.screen.in-battle .vbars{padding:0;border:0;background:none;gap:7px;min-width:0}
.screen.in-battle .vbar{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:7px;font-variant-numeric:tabular-nums}
.screen.in-battle .vbar b{font-size:calc(13px * var(--ui-text-scale,1));min-width:0;line-height:1;text-align:right;color:#f4eee3;white-space:nowrap}.vbar b small{font-size:calc(9px * var(--ui-text-scale,1));color:#b2acaa;font-weight:500;margin-left:1px}
.screen.in-battle .track{height:9px;background:#070b15;border-color:#96866c55;box-shadow:inset 0 2px 3px #0009;border-radius:5px}.screen.in-battle .fill{box-shadow:inset 0 1px #ffffff77}
.screen.in-battle .turn-clock{display:grid;place-items:center;font-family:Impact,'Anton',sans-serif;font-size:calc(27px * var(--ui-text-scale,1));font-weight:400;line-height:1;color:#f1dca8;min-width:40px;min-height:40px;box-sizing:border-box;border:1px solid #ac8e5866;border-radius:9px;background:#080e19aa;font-variant-numeric:tabular-nums}
.screen.in-battle .turn-clock.urgent{color:#ffaba0;border-color:#e56f59}.battle-wrap[data-turn=p] .turn-clock{box-shadow:inset 0 -2px #579fd0}.battle-wrap[data-turn=e] .turn-clock{box-shadow:inset 0 -2px #ce6260}
.screen.in-battle .hand-zone{gap:13px;padding:2px 0}.screen.in-battle .hand-zone .row{padding:3px}.screen.in-battle .draw-pile{background:repeating-linear-gradient(45deg,#bb975515 0 1px,transparent 1px 8px),linear-gradient(145deg,#27334a,#101725);border-color:#a88c58}
.screen.in-battle .battle-journal{width:100%;box-sizing:border-box;border:1px solid #9c825548;border-radius:10px;background:#080e19e8;overflow:hidden;box-shadow:0 2px 8px #0004}
.journal-heading{display:flex;justify-content:space-between;padding:5px 9px;border-bottom:1px solid #ffffff0e;color:#c9b184;font-size:calc(8px * var(--ui-text-scale,1));font-weight:700;letter-spacing:1.1px}.journal-heading span+span{font-weight:400;color:#8c9aac;letter-spacing:.2px}
.screen.in-battle .log{border:0;background:none;border-radius:0;height:clamp(75px,12.8dvh,112px);min-height:75px;padding:3px 9px;font-size:calc(11px * var(--ui-text-scale,1));line-height:1.4;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#695a43 transparent;color:#c6d0dc}
.log-line{padding:3px 0 3px 8px;border-bottom:1px solid #ffffff08;position:relative}.log-line:before{content:"";position:absolute;left:0;top:10px;width:3px;height:3px;background:#738096;border-radius:50%}.log .damage{color:#edbcb7}.log .heal{color:#a6dec0}.log .guard{color:#a6d2e8}.log .votes{color:#ead39f}.log-line.damage:before{background:#df8c85}.log-line.heal:before{background:#84d5aa}.log-line.guard:before{background:#82bdd8}.log-line.votes:before{background:#d8b86b}
.screen.in-battle .hint{font-size:calc(10px * var(--ui-text-scale,1));padding:5px 7px;margin:0;background:#101c2ee8;border:1px solid #b39b6355;border-radius:7px}
.battle-controls{gap:8px}.battle-controls .btn{min-height:35px;border-radius:8px}.battle-controls [data-act=end]{background:linear-gradient(140deg,#f1d68d,#c49b50);box-shadow:inset 0 1px #fff0b0,0 2px 6px #0006;color:#241e17}.battle-controls [data-act=abandon]{background:#111825c9;color:#c3c8d2;border-color:#7f879450}
.tribuna .cromo.action-ready{border-color:#d9b96d;box-shadow:0 0 0 1px #e6ca7d45,0 3px 8px #0007}.tribuna .cromo.busy{filter:saturate(.7);opacity:.8}.strong-signal{position:absolute;right:3px;top:25px;z-index:4;width:17px;height:19px;display:grid;place-items:center;border:1px solid #eaca86;border-radius:5px;background:#493c22ee;color:#ffe0a0;font-size:calc(19px * var(--ui-text-scale,1));font-weight:800;line-height:1;box-shadow:0 0 6px #f0c56f44}
#battleFxRoot{position:fixed;inset:0;z-index:62;pointer-events:none;overflow:hidden}.battle-fx{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);pointer-events:none}
.damage-number,.heal-number,.vote-number{font-family:Impact,'Anton',sans-serif;text-shadow:0 2px 2px #000,0 0 8px #000;font-size:calc(30px * var(--ui-text-scale,1));color:#ffc0b0;animation:battleNumber .85s ease-out both}.heal-number{color:#b1ffcc}.vote-number{font-size:calc(21px * var(--ui-text-scale,1));color:#ead18c}.vote-number.own{color:#b0deff}.vote-number.rival{color:#ffbdb3}
.impact{width:48px;height:48px;border:2px solid #ffe2a2;border-radius:50%;box-shadow:0 0 14px #ffca7780;animation:battleImpact .36s ease-out both}.impact.strong{border-width:4px;width:68px;height:68px}.healing-ring,.shield-ring{width:65px;height:76px;border:2px solid #99f1bc;border-radius:13px;box-shadow:0 0 18px #62dd8880;animation:battleImpact .65s ease-out both}.shield-ring{border-color:#96d6ed;box-shadow:0 0 18px #64bce880;color:#bceeff;font-size:calc(52px * var(--ui-text-scale,1))}
.turn-announcement{padding:5px 13px;border:1px solid #ddbf7a;border-radius:7px;background:#111827ee;color:#eddbac;font-size:calc(12px * var(--ui-text-scale,1));font-weight:800;white-space:nowrap;animation:turnNotice .95s ease both;box-shadow:0 3px 12px #0008}
.tribuna .cromo.is-attacking{animation:battleAttack .3s ease-out}.majority-seal{align-self:center;display:grid;text-align:center;gap:5px;color:#ebcc83;padding:14px 20px;animation:majorityIn .35s ease-out}.majority-seal>span{font-size:calc(38px * var(--ui-text-scale,1));text-shadow:0 0 30px #d7af3a66}.majority-seal>b{font-size:calc(19px * var(--ui-text-scale,1));text-transform:uppercase;letter-spacing:1px}.majority-seal>small{color:#bdb9ab;font-size:calc(11px * var(--ui-text-scale,1))}
.home-utilities{display:flex;align-items:center;justify-content:space-between;gap:8px}.mail-button{position:relative;flex-shrink:0;width:34px;height:31px;padding:6px;color:#d3bc82;background:linear-gradient(145deg,#333747,#151c2a);border:1px solid #8d774d;border-radius:8px;cursor:pointer}.mail-button svg{width:20px;height:20px}.mail-button>span{position:absolute;right:-5px;top:-5px;min-width:14px;padding:1px 3px;border-radius:8px;background:#dbbd77;color:#1b1720;font-size:calc(9px * var(--ui-text-scale,1));font-weight:800}.mail-button.has-mail{animation:mailAttention 1.8s ease-in-out infinite}.mail-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.mail-heading h2{margin:4px 0}.mail-list{display:flex;flex-direction:column;gap:9px;padding:4px 1px}.mail-message h3{font-size:calc(13px * var(--ui-text-scale,1));flex:1}.mail-message p{margin:8px 0}.mail-reward{display:grid;justify-items:center;gap:8px;padding:12px;background:#090e1966;border-radius:8px}.mail-reward>b{color:#f0d292;font-size:calc(14px * var(--ui-text-scale,1))}.mail-empty{text-align:center;padding:28px 14px}.mail-empty>span{font-size:calc(38px * var(--ui-text-scale,1));color:#d0b978}.mail-button:focus-visible{outline:2px solid #f7d686;outline-offset:3px}
.profile-appearance{margin:8px 0 0;padding:5px 0 0;border:0;border-top:1px solid #57617b55;display:flex;gap:6px}.profile-appearance legend{font-size:calc(9px * var(--ui-text-scale,1));color:#c6b68d;padding-right:5px}.profile-appearance button{font:inherit;font-size:calc(10px * var(--ui-text-scale,1));display:flex;align-items:center;gap:5px;background:#0c1524;color:#bac4d3;border:1px solid #526078;border-radius:6px;padding:5px 7px;cursor:pointer}.profile-appearance button[aria-pressed=true]{border-color:#d9b56b;background:#393222;color:#ffdf9f}.theme-swatch{width:15px;height:15px;display:block;border-radius:3px;border:1px solid #c0a67177;background:repeating-linear-gradient(0deg,#1a293c 0 4px,#111a27 5px 6px)}.theme-swatch.marble{background:repeating-linear-gradient(130deg,#234258 0 5px,#98b5bf 6px,#182d40 7px 12px)}
@keyframes battleNumber{0%{opacity:0;transform:translate(-50%,-20%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-150%) scale(.95)}}
@keyframes battleImpact{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}
@keyframes battleAttack{0%,100%{transform:translateY(0)}45%{transform:translateY(var(--attack-step,-7px))}}
@keyframes turnNotice{0%{opacity:0;transform:translate(-50%,-30%)}18%,72%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-70%)}}
@keyframes mailAttention{0%,100%{box-shadow:0 0 0 0 #d7b36500}50%{box-shadow:0 0 11px 1px #d7b36577;color:#ffe3a0}}
@keyframes majorityIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(max-height:740px){.screen.in-battle{--orator-height:clamp(62px,calc((100dvh - 342px)/2),100px);--hand-width:clamp(52px,9.6dvh,67px)}.screen.in-battle .battle-wrap{padding:5px;gap:3px}.screen.in-battle .battle-meta{min-height:30px;padding-bottom:3px}.screen.in-battle .battle-hud{padding:6px 8px;gap:7px}.screen.in-battle .battle-resources{font-size:calc(9px * var(--ui-text-scale,1))}.screen.in-battle .log{height:75px;min-height:75px;font-size:calc(10px * var(--ui-text-scale,1));line-height:1.3}.screen.in-battle .battle-controls .btn{min-height:31px}.journal-heading{padding:4px 8px}.screen.in-battle .hand-zone{padding:0}.screen.in-battle .tribuna{padding:1px 0}}
@media(max-height:500px) and (min-width:600px){.screen.in-battle{--orator-height:60px;--hand-width:47px}.screen.in-battle .battle-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:30px 18px 68px 51px 18px 79px;gap:3px 14px;padding:5px 10px;align-content:center}.battle-meta{grid-column:1/-1;grid-row:1}.rival-resources{grid-column:1;grid-row:2}.tribuna[data-tutorial=enemy]{grid-column:1;grid-row:3}.screen.in-battle .battle-hud{grid-column:1;grid-row:4;align-self:center}.tribuna[data-tutorial=player]{grid-column:1;grid-row:6}.own-resources{grid-column:1;grid-row:5}.screen.in-battle .hand-zone{grid-column:2;grid-row:2/4;align-self:center}.screen.in-battle .battle-journal{grid-column:2;grid-row:4/6;align-self:stretch}.screen.in-battle .log{height:51px;min-height:51px;font-size:calc(10px * var(--ui-text-scale,1))}.battle-controls{grid-column:2;grid-row:6;align-self:end}.screen.in-battle .hint{grid-column:2;grid-row:6;align-self:start;font-size:calc(8px * var(--ui-text-scale,1));padding:2px}.screen.in-battle .tutorial-coin{grid-column:1;grid-row:2;z-index:3;background:#172030}.screen.in-battle .battle-meta{min-height:0}.screen.in-battle .hand-zone .row{min-height:63px}.screen.in-battle .battle-resources{min-height:0}}
@media(prefers-reduced-motion:reduce){.battle-fx,.tribuna .cromo.is-attacking,.majority-seal,.mail-button.has-mail{animation:none}.battle-fx{opacity:1}.impact,.healing-ring,.shield-ring{display:none}.screen.in-battle .tribuna,.screen.in-battle .fill{transition:none}.damage-number,.heal-number,.vote-number{font-size:calc(21px * var(--ui-text-scale,1))}.turn-announcement{display:none}}
.help-heading{padding:3px 2px 8px}.help-heading h2{margin:4px 0 5px;font-size:calc(25px * var(--ui-text-scale,1))}.help-heading .sub{line-height:1.4}.help-topics{display:flex;flex-direction:column;gap:8px;padding:1px 2px 8px;scrollbar-width:thin;scrollbar-color:#746344 transparent}.help-section{flex-shrink:0;background:linear-gradient(120deg,#202b3b,#131d2d);border:1px solid #80704d77;border-radius:11px;overflow:hidden}.help-section summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 12px;min-height:44px;box-sizing:border-box;cursor:pointer;list-style:none;color:#e9d4a0;font-size:calc(12px * var(--ui-text-scale,1));font-weight:800;transition:background .18s ease}.help-section summary::-webkit-details-marker{display:none}.help-section summary:hover,.help-section summary:focus-visible{background:#ad91521a}.help-section summary:focus-visible{outline:2px solid #efd18c;outline-offset:-3px}.help-section summary svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .22s ease}.help-section[open] summary svg{transform:rotate(180deg)}.help-section[open] summary{border-bottom:1px solid #8f7e5133}.help-body{padding:11px 12px 13px;animation:helpReveal .18s ease-out}.help-body .sub{font-size:calc(11px * var(--ui-text-scale,1));line-height:1.6;margin:0 0 8px}.help-body .btn{margin-top:5px;margin-right:5px;min-height:32px}.help-body input{max-width:100%;box-sizing:border-box}.help-body .bar{gap:6px}.help-body label{display:block}.help-body .btn.ghost{background:#0a122266}
@keyframes helpReveal{from{opacity:.3;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.help-section summary svg,.help-section summary{transition:none}.help-body{animation:none}}

.log-line b{color:#f0e3c9;font-weight:700}.battle-wrap .log-line{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
/* La indicación temporal no desplaza la mesa cuando se elige un objetivo. */
.screen.in-battle .battle-wrap>.hint{position:absolute;left:9px;right:9px;bottom:calc(clamp(75px,12.8dvh,112px) + 68px);z-index:3;box-shadow:0 3px 10px #0007}
@media(max-height:500px) and (min-width:600px){.screen.in-battle .battle-wrap>.hint{left:auto;right:10px;bottom:46px;width:calc(50% - 22px);box-sizing:border-box}}
@media(max-height:600px) and (max-width:599px){.screen.in-battle{--orator-height:clamp(58px,calc((100dvh - 428px)/2),76px)}.screen.in-battle[data-tutorial-active=true] .battle-wrap{gap:3px}}

.help-body .sub{color:#c3ccda}.mail-message .sub{color:#b6c0d0}

.shield-ring svg{width:38px;height:47px}
/* El ensayo del sorteo ocupa la cabecera sin añadir una fila al tablero. */
.screen.in-battle .tutorial-coin{position:absolute;top:5px;left:5px;right:5px;z-index:4}
/* Efectos v31.0.2.1: tamaño relativo al cromo, sin bloquear la mesa. */
.impact{width:var(--fx-size,64px);height:var(--fx-size,64px);border:0;box-shadow:none;animation:fxImpact .68s ease-out both;isolation:isolate}.impact.strong{width:var(--fx-size,96px);height:var(--fx-size,96px);border:0;filter:drop-shadow(0 0 5px #ffbe6477)}
.impact-core{position:absolute;inset:26%;border-radius:50%;background:radial-gradient(circle,#fff9db,#ffc36566 40%,transparent 70%);animation:fxCore .4s ease-out both}.impact-wave{position:absolute;inset:10%;border:2px solid #ffe5ab;border-radius:50%;box-shadow:0 0 10px #f4ab4966,inset 0 0 10px #f4ab4922;animation:fxWave .65s ease-out both}.impact.strong .impact-wave{border-width:3px}.impact-wave.echo{animation-delay:100ms;inset:3%;border-color:#f3ab57}.impact-slash{position:absolute;left:9%;top:44%;width:82%;height:8%;border-radius:50%;background:linear-gradient(90deg,transparent,#fff9d6 35%,#ffe5ad 65%,transparent);transform:rotate(-30deg);box-shadow:0 0 8px #ffbc59aa}.impact-slash.second{transform:rotate(38deg)}
.fx-particle{position:absolute;left:50%;top:50%;width:4px;height:9px;border-radius:50%;background:#ffe6b2;box-shadow:0 0 5px #f6b95d88;animation:fxParticle .72s ease-out both;animation-delay:var(--delay,0ms)}.strong .fx-particle{height:13px;width:4px}.attack-trail{width:0;height:0;transform:rotate(var(--angle));transform-origin:0 0}.attack-trail>i{display:block;position:absolute;left:0;top:-2px;width:36px;height:4px;border-radius:50%;background:linear-gradient(90deg,transparent,#f7cf82,#fff7dc);box-shadow:0 0 8px #dba34777;animation:fxTravel .28s ease-out both}.attack-trail.strong>i{height:7px;top:-3px;width:54px;box-shadow:0 0 12px #f9b75699}
.healing-ring,.shield-ring{width:var(--fx-size,80px);height:calc(var(--fx-size,80px)*1.15);border:0;box-shadow:none;border-radius:18px;animation:fxSupport 1.1s ease-out both}.heal-aura,.shield-aura{position:absolute;inset:5%;border-radius:30%;background:radial-gradient(ellipse,#7af4a83b,transparent 70%);box-shadow:0 0 14px #80eeb542}.heal-orbit{position:absolute;inset:15% -5%;border:2px solid #a6ffd5aa;border-radius:50%;transform:rotate(-30deg) scaleY(.6);animation:fxOrbit .95s ease-in-out both}.heal-orbit.second{inset:25% -4%;transform:rotate(35deg) scaleY(.6);animation-direction:reverse}.healing-ring>svg{width:45%;height:45%;color:#c4ffde;filter:drop-shadow(0 0 7px #67f8a277);z-index:1}.fx-particle.heal{width:5px;height:5px;background:#b9ffdc;box-shadow:0 0 6px #75dfb6;animation:fxHealParticle 1s ease-out both}.fx-particle.heal:after{content:'';position:absolute;left:-2px;right:-2px;top:2px;height:1px;background:inherit}
.shield-ring>svg{width:80%;height:92%;filter:drop-shadow(0 0 8px #66c9e877);z-index:1}.shield-aura{background:radial-gradient(ellipse,#6ac9ff33,transparent 70%);box-shadow:0 0 14px #80ceee33}.shield-sheen{position:absolute;inset:10% 15%;border-radius:45%;background:linear-gradient(125deg,transparent 35%,#e6faff55 48%,transparent 60%);animation:fxSheen .85s ease-out both;z-index:2;clip-path:polygon(50% 0,100% 15%,95% 65%,50% 100%,5% 65%,0 15%)}.guard-hit{width:64px;height:76px;border:2px solid #a9ebff;border-radius:40%;box-shadow:0 0 12px #74cbff77;animation:fxWave .5s ease-out both}
@keyframes fxImpact{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}15%{opacity:1}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.1)}}
@keyframes fxCore{0%{opacity:0;transform:scale(.3)}30%{opacity:1}100%{opacity:0;transform:scale(1.4)}}
@keyframes fxWave{from{opacity:.9;transform:scale(.55)}to{opacity:0;transform:scale(1.4)}}
@keyframes fxParticle{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot)) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(var(--px),var(--py)) rotate(var(--rot)) scale(.25)}}
@keyframes fxTravel{0%{opacity:0;transform:translateX(0) scaleX(.3)}20%{opacity:.85}85%{opacity:.8}100%{opacity:0;transform:translateX(calc(var(--travel) - 36px)) scaleX(.7)}}
@keyframes fxSupport{0%{opacity:0;transform:translate(-50%,-40%) scale(.85)}22%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:.85}100%{opacity:0;transform:translate(-50%,-55%) scale(1.05)}}
@keyframes fxOrbit{from{opacity:0;rotate:-35deg;scale:.7}35%{opacity:.85}to{opacity:0;rotate:25deg;scale:1.2}}
@keyframes fxHealParticle{0%{opacity:0;transform:translate(calc(var(--px)*.7),12px) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(var(--px),calc(var(--py) - 32px)) scale(.3)}}
@keyframes fxSheen{from{opacity:0;transform:translateY(14px)}35%{opacity:.8}to{opacity:0;transform:translateY(-14px)}}
@media(prefers-reduced-motion:reduce){.attack-trail,.impact,.guard-hit,.healing-ring,.shield-ring,.fx-particle{display:none}.battle-fx *{animation:none!important}.damage-number,.heal-number,.vote-number{animation:none}}
/* Acciones: efectos por familia, relativos al objetivo y sin bloquear controles. */
.boost-number{font:700 calc(15px * var(--ui-text-scale,1)) 'Hemicycle UI',sans-serif;color:#ffe8a5;text-shadow:0 2px 4px #000,0 0 9px #8b591d;white-space:nowrap;animation:battleNumber 1.05s ease-out both}
.inspiration-ring{width:var(--fx-size,80px);height:calc(var(--fx-size,80px)*1.2);color:#ffe3a1;animation:fxSupport 1.1s ease-out both}.inspiration-aura{position:absolute;inset:5%;border-radius:35%;background:radial-gradient(ellipse,#f4c56d55,transparent 70%)}.inspiration-orbit{position:absolute;inset:20% -7%;border:2px solid #f4d68d88;border-radius:50%;transform:rotate(-25deg) scaleY(.65);animation:fxOrbit 1.05s ease-out both}.inspiration-ring>svg{width:65%;height:75%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #f5c864);animation:actionAscend 1.05s ease-out both}.fx-particle.inspire{background:#ffedba;box-shadow:0 0 5px #e7b75e}
.action-burst{width:clamp(42px,12vw,85px);height:clamp(42px,12vw,85px);animation:fxImpact .7s ease-out both}.action-burst>i{position:absolute;width:90%;height:2px;background:linear-gradient(90deg,transparent,#fff1be,#e78e6a,transparent);box-shadow:0 0 5px #e8745277;transform:rotate(15deg)}.action-burst>i:nth-child(2){transform:rotate(75deg)}.action-burst>i:nth-child(3){transform:rotate(135deg)}
.action-support{border-radius:25%;animation:fxSupport 1.15s ease-out both;color:#9ae6bf}.action-support.guard{color:#98dcff}.action-support>i{position:absolute;inset:-4%;border:1px solid currentColor;border-radius:inherit;box-shadow:0 0 10px currentColor;animation:actionHalo 1.1s ease-out both;opacity:.35}.action-support>i+i{inset:8%;animation-delay:100ms}.action-support.tier-legendario>i,.inspiration-ring.tier-legendario .inspiration-orbit{border-width:2px}
.censure-seal{width:clamp(60px,17vw,96px);height:clamp(60px,17vw,96px);border:1px solid #d5b6ed99;border-radius:50%;color:#f1d6ff;background:radial-gradient(circle,#302044b8,transparent 72%);box-shadow:0 0 18px #8550a84d;animation:censureEnter 1.35s ease-out both}.censure-seal>svg{width:68%;height:68%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}.censure-seal>svg rect{fill:#c8a3de22}.censure-orbit{position:absolute;inset:-9%;border:1px dashed #d4b8e8aa;border-radius:50%;animation:censureOrbit 1.3s ease-out both}.action-notice{font:700 calc(10px * var(--ui-text-scale,1)) 'Hemicycle UI',sans-serif;padding:5px 9px;border-radius:6px;white-space:nowrap;background:#21182eea;border:1px solid #bc92d4;color:#edd7ff;animation:turnNotice 1.4s ease both;text-shadow:0 1px 2px #000}
@keyframes actionAscend{0%{opacity:0;transform:translateY(14px) scale(.85)}25%,65%{opacity:1}100%{opacity:0;transform:translateY(-18px) scale(1.05)}}
@keyframes actionHalo{from{opacity:0;transform:scale(.85)}25%{opacity:.5}to{opacity:0;transform:scale(1.2)}}
@keyframes censureEnter{0%{opacity:0;transform:translate(-50%,-50%) scale(1.18) rotate(-12deg)}25%,70%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes censureOrbit{from{transform:rotate(-35deg)}to{transform:rotate(45deg)}}
@media(prefers-reduced-motion:reduce){.inspiration-ring,.action-burst,.action-support,.censure-seal{display:none}.boost-number,.action-notice{animation:none}.boost-number{font-size:calc(12px * var(--ui-text-scale,1))}}

.recovery-badge{display:block;max-width:100%;border:1px solid #96815b88;border-radius:4px;background:#172338;color:#e3cb94;font:600 calc(8px * var(--ui-text-scale,1)) 'Hemicycle UI',sans-serif;padding:2px 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.recovery-badge:focus-visible{outline:2px solid #efcc7d}.draw-pile:has(.recovery-badge){gap:3px}
/* Dos oradores y un apoyo permanecen en una única fila, también en móvil. */
.screen.in-battle .hand-zone:has(.row>:nth-child(3)){--hand-width:min(64px,calc((100dvw - 100px)/4));grid-template-columns:calc(var(--hand-width)*3 + 12px) var(--hand-width);gap:8px}
.hand-zone .row:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-height:500px) and (min-width:600px){.screen.in-battle .hand-zone:has(.row>:nth-child(3)){--hand-width:44px;gap:7px}}

.battle-state-badges{position:absolute;z-index:5;left:5%;top:25%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:90%;padding:0;border:0;background:none;cursor:pointer}.battle-state-badges span{font:700 calc(clamp(8px,1.8vw,11px) * var(--ui-text-scale,1))/1.2 'Hemicycle UI',sans-serif;color:#eaf7ff;background:#101b30ed;border:1px solid #82c1d478;border-radius:5px;padding:2px 4px;white-space:nowrap}.battle-state-badges:focus-visible{outline:2px solid #f5d477}.team-state{font:inherit;font-size:calc(10px * var(--ui-text-scale,1));color:#dcefff;background:#152942;border:1px solid #54718f;border-radius:5px;padding:2px 5px;margin-left:5px;cursor:pointer}.battle-state-summary{font:500 calc(10px * var(--ui-text-scale,1))/1.3 'Hemicycle UI',sans-serif;margin:5px 0 0;color:#c7d8ed}.battle-state-badges~.lbl{top:18%}
@media(max-height:500px) and (min-width:600px){.screen.in-battle .battle-resources{white-space:nowrap;line-height:16px}.team-state{font-size:0;width:18px;height:16px;min-height:0;padding:0;vertical-align:middle}.team-state::before{content:'◈';font-size:calc(11px * var(--ui-text-scale,1));line-height:14px}.battle-state-badges{top:22%;gap:1px}.battle-state-badges span{font-size:calc(7px * var(--ui-text-scale,1));padding:1px 2px}}

.support-symbol{width:15px;height:15px;display:inline-block;vertical-align:middle;flex-shrink:0}.battle-state-badges span{display:inline-flex;align-items:center;gap:2px;font-family:'Hemicycle UI',sans-serif;font-style:normal}.battle-state-summary{font-family:'Hemicycle UI',sans-serif;font-style:normal;grid-column:1/-1}.battle-action-head button{display:grid;place-items:center}.battle-action-head .support-symbol{width:18px;height:18px}.effect-list{list-style:none;padding:0;margin:8px 0;font-family:'Hemicycle UI',sans-serif;font-style:normal}.effect-list li{display:flex;align-items:flex-start;gap:9px;margin:10px 0;font-size:calc(13px * var(--ui-text-scale,1));line-height:1.45}.effect-list .support-symbol{color:#f0d18f;margin-top:2px}.team-state::before{content:none!important}.team-state{font-family:'Hemicycle UI',sans-serif}.team-state .support-symbol{width:12px;height:12px}

.coin-chip{display:inline-flex;align-items:center;gap:3px;cursor:pointer;font:700 calc(9px * var(--ui-text-scale,1)) 'Hemicycle UI',sans-serif;border-color:#b49552;color:#e7c987;background:#292638}.coin-chip svg{width:12px;height:12px}.coin-announcement{pointer-events:none;position:fixed;z-index:200;left:50%;top:22%;transform:translateX(-50%);width:min(88vw,340px);box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #d3b26b;border-radius:15px;background:linear-gradient(135deg,#27364bfa,#111c2efa);box-shadow:0 12px 40px #0009;color:#f5dda6;font-family:'Hemicycle UI',sans-serif}.coin-announcement b,.coin-announcement span,.coin-announcement small{display:block}.coin-announcement b{font-size:calc(16px * var(--ui-text-scale,1));margin:5px 0}.coin-announcement span{font-size:calc(10px * var(--ui-text-scale,1));color:#bdcadc}.coin-announcement small{font-size:calc(9px * var(--ui-text-scale,1));letter-spacing:1.4px}.coin-medallion{display:grid;place-items:center;width:53px;height:53px;flex-shrink:0;background:radial-gradient(#e6cd8e,#84652f);color:#2b2315;border:3px double #f1dcac;border-radius:50%;animation:coinReveal 1s ease-out}.coin-medallion svg{width:36px;height:36px}.coin-face .support-symbol{width:36px;height:36px;margin-right:8px}@keyframes coinReveal{from{transform:rotateY(900deg) scale(.6)}to{transform:rotateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.coin-medallion{animation:none}}
.strong-signal .support-symbol{width:100%;height:100%}
@media(max-height:500px) and (min-width:600px){.battle-state-badges .support-symbol{width:8px;height:8px}.battle-state-badges span{line-height:1;min-height:0;max-height:10px;padding:1px 2px}.battle-state-badges{gap:1px}}

/* Estados en una fila propia bajo coste, líder y rareza; nunca sobre sus insignias. */
.screen.in-battle .battle-state-badges{inset:0;max-width:none;width:100%;height:100%;display:block;pointer-events:none;border-radius:8px}
.screen.in-battle .battle-state-badges .battle-state-icon{position:absolute;top:max(23%,24px);width:clamp(10px,19%,24px);aspect-ratio:1;padding:2px;border-radius:50%;display:grid;place-items:center;background:#102233eb;line-height:1;max-height:none;min-height:0;pointer-events:auto;overflow:visible}
.screen.in-battle .battle-state-icon .support-symbol{width:100%;height:100%}
.screen.in-battle .state-heal{left:8%;border-color:#86dba4;animation:healLockPulse 2.4s ease-in-out infinite}
.screen.in-battle .state-boost{right:8%;border-color:#b5dda0;color:#cfffaa;isolation:isolate}
.screen.in-battle .state-boost::before{content:'';position:absolute;inset:-4px;border-radius:50%;background:radial-gradient(circle,#c9ff9744,transparent 70%);box-shadow:0 0 7px #b9ed7c88;z-index:-1;animation:boostStatusGlow 2.8s ease-in-out infinite}
.screen.in-battle .state-guard{left:50%;transform:translateX(-50%);color:#c1e6ff;border-color:#7cb7d5}
.screen.in-battle .cromo .strong-signal{top:max(46%,40px);right:8%;width:clamp(12px,17%,20px);height:auto;aspect-ratio:1}
.screen.in-battle .battle-used{position:absolute;top:63%;right:8%;z-index:5;width:clamp(11px,16%,18px);aspect-ratio:1;display:grid;place-items:center;color:#f2d18b;background:#182431e8;border:1px solid #ad945d;border-radius:50%;pointer-events:none}
.battle-used svg{width:85%;height:85%}
@keyframes healLockPulse{50%{opacity:.55}}@keyframes boostStatusGlow{50%{opacity:.4;transform:scale(.82)}}
@media(prefers-reduced-motion:reduce){.screen.in-battle .state-heal,.screen.in-battle .state-boost::before{animation:none}}
/* Estados en los laterales exteriores del marco; el retrato queda libre. */
.screen.in-battle .tribuna{width:calc(var(--orator-height)*2.4324 + 84px);padding-inline:14px;gap:28px}
.screen.in-battle .tribuna .cromo{overflow:visible}
.screen.in-battle .tribuna .cromo .art{overflow:hidden;border-radius:10px}
.screen.in-battle .battle-state-badges .battle-state-icon{top:32%;width:clamp(10px,19%,14px);padding:1px}
.screen.in-battle .state-heal{left:-13px}.screen.in-battle .state-boost{right:-13px}
.screen.in-battle .state-boost::before{inset:-2px;box-shadow:0 0 4px #b9ed7c66}
.screen.in-battle .state-guard{top:62%!important;left:auto;right:-13px;transform:none}
.screen.in-battle .cromo .strong-signal,.screen.in-battle .battle-used{top:62%;bottom:auto;left:-13px;right:auto;width:clamp(10px,19%,14px);background:#182431e6}

/* Hueco fijo sobre cada marco; pilotos apagados hasta que el estado esté activo. */
.screen.in-battle .tribuna{padding-top:17px}
.screen.in-battle .battle-state-badges{top:-17px;bottom:auto;height:14px;display:flex;align-items:center;justify-content:space-between;flex-direction:row;padding:0 2px}
.screen.in-battle .battle-state-badges .battle-state-icon{position:static;flex:0 0 auto;width:clamp(10px,19%,14px);transform:none}
.screen.in-battle .battle-state-icon.is-off{opacity:.25;filter:grayscale(1);animation:none}
.screen.in-battle .battle-state-icon.is-off::before{display:none}
.screen.in-battle .battle-state-icon.is-on{opacity:1;animation:healLockPulse 2.4s ease-in-out infinite}
@media(max-height:600px) and (max-width:599px){.screen.in-battle .log{height:41px;min-height:41px}}
@media(max-height:500px) and (min-width:600px){.screen.in-battle .battle-wrap{grid-template-rows:30px 18px 82px 51px 18px 93px}}
@media(prefers-reduced-motion:reduce){.screen.in-battle .battle-state-icon.is-on{animation:none}}

.screen.in-battle .battle-state-badges{width:calc(100% + 22px);left:-11px;right:auto}
.screen.in-battle .battle-state-badges .state-guard{width:36px;height:14px;aspect-ratio:auto;display:flex;gap:2px;border-radius:5px;padding:1px 2px}
.screen.in-battle .state-guard .support-symbol{width:11px;height:11px}
.status-value{font:700 calc(7px * var(--ui-text-scale,1))/1 'Hemicycle UI',sans-serif;white-space:nowrap}
.screen.in-battle .state-guard.is-off .status-value{visibility:hidden}

/* Mesa despejada y acta flotante sin pausar el debate. */
.battle-wrap[data-turn=p] [data-tutorial=player],.battle-wrap[data-turn=e] [data-tutorial=enemy]{box-shadow:none}
.screen.in-battle .tribuna{background:none}
.screen.in-battle .tribuna .cromo .bot{border-radius:0 0 10px 10px;overflow:hidden}
.screen.in-battle .battle-state-badges{width:100%;left:0;right:0}
.screen.in-battle .battle-state-badges .battle-state-icon{width:clamp(8px,20%,14px)}
.screen.in-battle .battle-state-badges .state-guard{width:48%;max-width:36px;min-width:24px;gap:1px;padding:1px}
.screen.in-battle .state-guard .support-symbol{width:9px;height:9px}
.screen.in-battle .status-value{font-size:calc(clamp(5px,11cqi,7px) * var(--ui-text-scale,1))}
.screen.in-battle .cromo .strong-signal,.screen.in-battle .battle-used{left:auto;right:6%;top:58%;bottom:auto}
.screen.in-battle[data-tutorial-active=false]{--orator-height:clamp(70px,calc((100dvh - 390px)/2),160px)}
.screen.in-battle[data-tutorial-active=false] .tribuna{width:calc(var(--orator-height)*2.4324 + 12px);padding-inline:0;gap:6px}
.screen.in-battle .battle-wrap>.journal-popover{position:absolute;z-index:40;bottom:48px;left:8px;right:8px;max-height:min(42dvh,250px);background:#0d1729f5;border:1px solid #718299;border-radius:12px;box-shadow:0 8px 30px #000b;display:flex;flex-direction:column}
.screen.in-battle .journal-popover .journal-heading{display:flex;align-items:center;min-height:34px;flex-shrink:0}
.screen.in-battle .journal-popover .journal-heading button{padding:3px;min-height:28px;min-width:28px}
.screen.in-battle .journal-popover .log{height:auto;min-height:0;max-height:min(34dvh,200px);overflow-y:auto;padding:6px 9px;flex:1}
.battle-log-toggle{min-width:44px}.journal-popover .log:focus-visible{outline:2px solid #f1d18b;outline-offset:-3px}
@media(max-height:500px) and (min-width:600px){.screen.in-battle[data-tutorial-active=false]{--orator-height:60px}.screen.in-battle .battle-wrap>.journal-popover{left:auto;right:8px;width:52%;bottom:49px;max-height:65dvh}.screen.in-battle .journal-popover .log{max-height:50dvh}.screen.in-battle[data-tutorial-active=false] .hand-zone{grid-row:2/6}}

.toss-coin{width:64px;height:64px;flex-shrink:0;display:block;filter:drop-shadow(0 3px 3px #0008)}
.toss-coin .coin-metal{fill:#dec17c;stroke:#f7dfa3;stroke-width:3}.toss-coin .coin-engraving{fill:none;stroke:#735627;stroke-width:2;stroke-dasharray:2 3}.toss-coin .coin-emblem{fill:#755729}
.toss-coin.is-cross .coin-metal{fill:#604826;stroke:#dabd77}.toss-coin.is-cross .coin-engraving{stroke:#e5cb8b}.toss-coin.is-cross .coin-emblem{fill:#edcf87}
.coin-assignments{display:flex;justify-content:center;gap:36px;margin:10px 0}.coin-assignments>span{display:grid;justify-items:center;gap:5px}.coin-assignments .toss-coin{width:32px;height:32px}.coin-assignments b{font-size:calc(11px * var(--ui-text-scale,1))}
.coin-result{display:grid;place-items:center;margin:16px 0 8px}.coin-result .toss-coin{width:90px;height:90px;animation:coinReveal .8s ease-out}
.coin-outcome{text-align:center}.coin-outcome small,.coin-outcome b{display:block}.coin-outcome small{font-size:calc(11px * var(--ui-text-scale,1));color:#c3cbd9;margin-bottom:4px}.coin-outcome b{font-size:calc(20px * var(--ui-text-scale,1));color:#f4d99d}
@media(prefers-reduced-motion:reduce){.coin-result .toss-coin{animation:none}}

.coin-medallion.toss-coin.is-cross{background:radial-gradient(#84652f,#e6cd8e);color:#f1dcac;border-color:#705126}
.coin-assignments .coin-medallion svg{width:22px;height:22px}.coin-result .coin-medallion svg{width:62%;height:62%}
.coin-result .toss-coin{animation:coinReveal 1s ease-out}
@media(prefers-reduced-motion:reduce){.coin-result .toss-coin{animation:none}}
.coin-medallion.toss-coin{display:grid;place-items:center}

/* Presentación transparente: solo moneda y resultado, durante dos segundos. */
#coinRoot .coin-presentation,.coin-popup{position:fixed;z-index:200;left:50%;top:25%;transform:translateX(-50%);pointer-events:none}
.coin-presentation{display:grid;justify-items:center;gap:13px;perspective:700px}
.mint-coin{width:clamp(120px,34vw,174px);height:auto;overflow:visible;--coin-light:#ffe8a7;--coin-mid:#c89846;--coin-dark:#795121;--coin-edge:#7d592a;--coin-relief:#fff2ca;animation:coinReveal 1s ease-out;filter:drop-shadow(0 9px 13px #0009)}
.mint-coin.is-cross{--coin-light:#aa9a79;--coin-mid:#74634a;--coin-dark:#3a3530;--coin-edge:#413a30;--coin-relief:#d7cbb2}
.coin-relief{filter:drop-shadow(0 1px 0 #3c2718a8)}
.mint-reflection{animation:mintReflection 1.15s ease-in-out both;transform:translateX(155px);opacity:0}
.is-cross .mint-reflection{opacity:.25}
.coin-result-label{font:700 calc(26px * var(--ui-text-scale,1))/1.2 'Hemicycle UI',sans-serif;color:#fff0c6;text-shadow:0 2px 5px #000,0 0 12px #000}
@keyframes mintReflection{0%{transform:translateX(0);opacity:0}25%{opacity:.7}75%{opacity:.65}100%{transform:translateX(155px);opacity:0}}
@media(prefers-reduced-motion:reduce){.mint-coin,.mint-reflection{animation:none}.mint-reflection{opacity:0}}

.mint-coin.is-cross>g:last-child{opacity:.3}
