/* The game's sprite proportions, feet anchors and tile surfaces. */
.cell.supplied-art{overflow:visible;background:none;border:0;box-shadow:none}
.cell.supplied-art::before,.cell.supplied-art::after{content:none!important}
.game-art{display:block;position:absolute;pointer-events:none;user-select:none;max-width:none;object-fit:fill;image-rendering:pixelated;filter:none}
.cell .game-art{z-index:1}
.cell .game-art[data-art^="door:"],.cell .game-art[data-art^="rubble:"]{z-index:2}
.empty-cell-dot{position:absolute;left:50%;top:50%;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:#b8b1cf;opacity:.48}
.trace-dot{position:absolute;left:calc(50% - 4px);top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#c4b8e9;box-shadow:0 0 6px #c4b8e944;z-index:4}
.cell.supplied-art .cache-mini{position:absolute;z-index:2;inset:0;width:100%;height:100%;opacity:1;overflow:visible;filter:drop-shadow(0 1px 1px #9670d880)}
#mote .game-art{max-width:none;bottom:auto;object-fit:fill;translate:0 var(--mote-bob,0%);filter:drop-shadow(0 0 4px #f1ca8621)}
/* Keep all Mote frames mounted and decoded; JS switches opacity only. */
#mote .game-art{opacity:0}
