/* Painted off-path discoveries: the object is the node, not an emblem in a disc.
   The node's square footprint stays centred on the original route endpoint. Labels
   hang below it, inset toward the map at x=12% / 85%, never beyond its outer edge. */
#game .atlas-map .node.reward-node {
  --reward-size: clamp(52px, calc(var(--u) * 14), 96px);
  --reward-light: #ecc575;
  width: var(--reward-size); height: var(--reward-size); min-width: 44px; min-height: 44px;
  gap: 0; overflow: visible; filter: none; opacity: 1; border-radius: 3px; isolation: isolate;
}
#game .atlas-map .node.reward-node.side-relic { --reward-light: #bbddb7; }
#game .atlas-map .node.reward-node .disc.reward-object {
  position: relative; display: grid; place-items: center; width: 100%; height: 100%;
  padding: 0; border: 0; border-image: none; border-radius: 0;
  background: none; box-shadow: none; overflow: visible; animation: none; filter: none;
}
#game .atlas-map .node.reward-node .disc.reward-object::after { content: none; display: none; animation: none; }
#game .atlas-map .node.reward-node .reward-object::before {
  content: ''; position: absolute; z-index: -1; inset: 35% 10% 2%; border: 0; border-radius: 50%;
  background: radial-gradient(ellipse, var(--reward-light), transparent 70%);
  opacity: 0; pointer-events: none; transform: scale(.9);
}
#game .atlas-map .node.reward-node .map-reward-art {
  position: relative; display: block; width: 100%; height: 100%; object-fit: contain;
  object-position: center; border: 0; border-radius: 0; opacity: 1;
  filter: drop-shadow(0 2px 2px #281b1680);
  transition: transform .18s ease-out, filter .18s ease-out; pointer-events: none;
}
#game .atlas-map .node.reward-node.reward-ready .reward-object::before {
  opacity: .42; animation: rewardLandmarkGlow 3s ease-in-out infinite;
}
#game .atlas-map .node.reward-node.reward-ready .map-reward-art {
  filter: drop-shadow(0 2px 2px #281b1680) drop-shadow(0 0 2px #ffe5ad80);
}
#game .atlas-map .node.reward-node.reward-locked .map-reward-art {
  filter: grayscale(.48) saturate(.7) brightness(.88) drop-shadow(0 2px 2px #281b1680);
}
#game .atlas-map .node.reward-node.reward-claimed .map-reward-art {
  filter: saturate(.82) drop-shadow(0 2px 2px #281b1670);
}
#game .atlas-map .node.reward-node:not(.reward-locked):hover .map-reward-art { transform: translateY(-2px); }
#game .atlas-map .node.reward-node:not(.reward-locked):active .map-reward-art { transform: translateY(1px); }
#game .atlas-map .node.reward-node:focus-visible { outline: 2px solid #5f4420; outline-offset: 3px; }

/* Deliberately scoped past every old .side, .locked, and :not(.frontier) label rule. */
#game .atlas-map .node.reward-node .label.reward-label {
  position: absolute; z-index: 1; top: calc(100% + 1px); bottom: auto; margin: 0;
  width: max-content; max-width: clamp(80px, calc(var(--u) * 25), 144px); padding: 3px 5px;
  border: 0; border-radius: 2px; box-shadow: none;
  background: linear-gradient(90deg, #ecddb9c9, #f3e7cde8 45%, #ecddb9b3);
  color: #302411; text-shadow: 0 1px #fff0d980;
  font: 600 clamp(11px, calc(var(--u) * 2.35), 14px)/1.2 var(--ff-body);
  letter-spacing: 0; white-space: normal; text-wrap: balance; overflow-wrap: break-word;
}
#game .atlas-map .node.reward-node.reward-left .reward-label { left: 0; right: auto; transform: none; text-align: left; }
#game .atlas-map .node.reward-node.reward-right .reward-label { right: 0; left: auto; transform: none; text-align: right; }
#game .atlas-map .node.reward-node .reward-name { display: block; }
#game .atlas-map .node.reward-node .reward-status {
  display: flex; align-items: center; gap: 3px; margin-top: 3px;
  font: 600 clamp(9px, calc(var(--u) * 1.8), 10px)/1.1 var(--ff-body);
  color: #634c24; letter-spacing: .015em; text-transform: none; white-space: nowrap;
}
#game .atlas-map .node.reward-node.reward-right .reward-status { justify-content: flex-end; }
#game .atlas-map .node.reward-node .reward-status .ui-icon { position: static; width: 10px; height: 10px; flex: none; }
#game .atlas-map .node.reward-node.reward-locked .reward-label { color: #49402f; background: #e9ddbdc9; }
#game .atlas-map .node.reward-node.reward-locked .reward-status { color: #68604c; }
#game .atlas-map .node.reward-node.reward-claimed .reward-status { color: #365331; }
@keyframes rewardLandmarkGlow { 50% { opacity: .58; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  #game .atlas-map .node.reward-node .reward-object::before,
  #game .atlas-map .node.reward-node.reward-ready .reward-object::before { animation: none; }
  #game .atlas-map .node.reward-node .map-reward-art { transition: none; }
}
