/* =============================================================
   GAME: Alquerque
   ============================================================= */
.board-alquerque { --aq-glow: #78ff3d; width: min(100%, 440px); }
.aq-svg {
  display: block; width: 100%; height: auto; border-radius: 18px;
  background: radial-gradient(circle at 50% 45%, #18300c, #0b1408 78%);
  box-shadow: 0 0 0 2px var(--aq-glow), 0 0 26px rgba(120, 255, 61, .33);
}
.aq-lines line { stroke: var(--aq-glow); stroke-width: 3; stroke-linecap: round; opacity: .75; }
.aq-lines { filter: drop-shadow(0 0 3px rgba(120, 255, 61, .6)); }
.aq-trail polyline { fill: none; stroke: var(--t-gold); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; opacity: .55; stroke-dasharray: 2 9; }

.aq-pt { cursor: default; outline: none; -webkit-tap-highlight-color: transparent; }
.aq-pt.movable, .aq-pt.must, .aq-pt.dest, .aq-pt.sel { cursor: pointer; }
.aq-hit { fill: transparent; }
.aq-node { fill: #c8ffaa; transform-box: fill-box; transform-origin: center; transition: transform .15s; }
.aq-ring { fill: none; stroke: transparent; stroke-width: 3.5; }
.aq-shadow, .aq-piece, .aq-top, .aq-shine { opacity: 0; pointer-events: none; transition: opacity .2s; }
.aq-piece, .aq-top { transform-box: fill-box; transform-origin: center; transition: opacity .2s, transform .2s; }
.aq-x { fill: none; stroke: transparent; stroke-width: 3; stroke-linecap: round; }
.aq-pt.p1 .aq-node, .aq-pt.p2 .aq-node { opacity: 0; }
.aq-pt.p1 .aq-piece, .aq-pt.p2 .aq-piece, .aq-pt.p1 .aq-top, .aq-pt.p2 .aq-top { opacity: 1; }
.aq-pt.p1 .aq-shadow, .aq-pt.p2 .aq-shadow { opacity: 1; fill: rgba(0, 0, 0, .55); }
.aq-pt.p1 .aq-shine { opacity: .85; fill: #fff; }
.aq-pt.p2 .aq-shine { opacity: .28; fill: #fff; }
.aq-pt.p1 .aq-piece { fill: url(#aq-body1); stroke: #fff; stroke-width: 1.2; }
.aq-pt.p2 .aq-piece { fill: url(#aq-body2); stroke: var(--aq-glow); stroke-width: 2.4; }
.aq-pt.p1 .aq-top { fill: url(#aq-top1); stroke: rgba(80, 90, 50, .35); stroke-width: 1.6; }
.aq-pt.p2 .aq-top { fill: url(#aq-top2); stroke: rgba(120, 255, 61, .4); stroke-width: 1.3; }

.aq-pt.movable .aq-ring { stroke: rgba(255, 210, 63, .7); stroke-dasharray: 6 5; }
.aq-pt.must .aq-ring { stroke: var(--t-gold); stroke-dasharray: none; animation: aq-must .9s ease-in-out infinite alternate; }
.aq-pt.movable:hover .aq-ring, .aq-pt.sel .aq-ring { stroke: var(--t-gold); stroke-dasharray: none; stroke-width: 4.5; filter: drop-shadow(0 0 6px var(--t-gold)); animation: none; }
.aq-pt.sel .aq-piece, .aq-pt.sel .aq-top { transform: scale(1.07); }
.aq-pt.dest .aq-node { fill: #fff; transform: scale(1.7); filter: drop-shadow(0 0 5px var(--aq-glow)); }
.aq-pt.dest .aq-ring { stroke: rgba(200, 255, 170, .55); stroke-dasharray: 4 5; }
.aq-pt.dest:hover .aq-ring { stroke: #fff; stroke-dasharray: none; }
.aq-pt.last .aq-ring { stroke: var(--accent); stroke-dasharray: none; }
.aq-pt.last-from .aq-node { fill: var(--accent); transform: scale(1.5); }
.aq-pt.trail .aq-node { fill: var(--t-gold); transform: scale(1.5); }
.aq-pt.taken .aq-x { stroke: var(--t-red); opacity: .8; }
.aq-pt.taken .aq-node { opacity: 0; }
.aq-pt.ghost .aq-piece, .aq-pt.ghost .aq-top { opacity: .3; transform: scale(.8); }
.aq-pt.ghost .aq-shine, .aq-pt.ghost .aq-shadow { opacity: 0; }
.aq-pt:focus-visible .aq-hit { stroke: var(--focus); stroke-width: 3; }
@keyframes aq-must { to { stroke-width: 5; filter: drop-shadow(0 0 7px var(--t-gold)); } }
@media (prefers-reduced-motion: reduce) { .aq-pt.must .aq-ring { animation: none; stroke-width: 4.5; } }

.aq-dot.p1 { background: radial-gradient(circle at 40% 35%, #fff, #c3c9ad 80%); }
.aq-dot.p2 { background: radial-gradient(circle at 40% 35%, #3c4636, #0a0d09 80%); box-shadow: 0 0 0 2px var(--aq-glow); }
