/* Board feedback floats above tiles and stays below the existing z-index:7 overlays. */
.fx-node{position:absolute;z-index:5;pointer-events:none!important;user-select:none;opacity:0;box-sizing:border-box}
.fx-particle{border-radius:1px;background:var(--fx-color,#dadada);box-shadow:0 0 5px color-mix(in srgb,var(--fx-color,#dadada) 25%,transparent);will-change:transform,opacity}
.fx-ring{width:64px;height:64px;border:1px solid var(--fx-color,#dadada);border-radius:50%;will-change:transform,opacity}
.fx-ring::after{content:'';position:absolute;inset:6px;border:1px solid currentColor;border-radius:inherit;color:var(--fx-color,#dadada);opacity:.18}
.fx-badge{left:50%;top:34%;z-index:6;max-width:calc(100% - 24px);padding:7px 11px;border:1px solid #ffffff1a;border-radius:6px;background:#242424e8;color:var(--fx-color,#dadada);box-shadow:0 3px 10px #00000033,inset 0 1px #ffffff08;font-family:var(--mono,monospace);font-size:12px;font-weight:500;line-height:1.2;letter-spacing:.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;will-change:transform,opacity}
.fx-trail{z-index:4;border-radius:2px;background:linear-gradient(to bottom,transparent,var(--fx-color,#eeeeee));transform-origin:center bottom;will-change:transform,opacity}
.fx-trail::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:1px;background:var(--fx-color,#eeeeee)}
.fx-layer.fx-node{inset:0;border-radius:inherit;contain:strict}
.fx-row.fx-node{z-index:6;left:8px;right:8px;top:calc(8px + (100% - 16px)*var(--row)/20);height:calc((100% - 16px)/20);border-radius:2px;background:linear-gradient(90deg,#eeeeee00,#eeeeeeb0 30%,#f5f5f5c0 60%,#eeeeee00);transform-origin:center}
.gesture-feedback{position:absolute;inset:0;z-index:6;width:100%;height:100%;overflow:hidden;border-radius:inherit;pointer-events:none!important;user-select:none;opacity:1;transition:opacity 160ms linear;contain:strict}
.gesture-feedback *{pointer-events:none!important}
.gesture-feedback.is-releasing{opacity:0}
.gesture-feedback-path{fill:none;stroke:#ffffff38;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.gesture-feedback-contact{fill:none;stroke:#ffffff24;stroke-width:1}
.gesture-feedback-dot{fill:#ffffff61}
.merge-board{position:relative}
.merge-board[data-dragging] .merge-cell{transition:none!important}
.merge-board[data-dragging] .merge-cell:not([data-value='0']){z-index:2}
.merge-flight.fx-node{z-index:4;aspect-ratio:1}
@media(prefers-reduced-motion:reduce){.fx-node,.gesture-feedback{display:none!important}}
