/* Polish pass (loaded last). Visual corrections measured against the game-ui-craft rules;
   markup and behaviour are unchanged so the existing briefing/map/rune contracts still hold. */

/* ---------------------------------------------------------------- title screen */
#game .title-tag { text-wrap: balance; max-width: 30ch; }
/* the build tag is for testers: tiny, in the corner, never part of the composition */
#game .build-tag { position: absolute !important; right: var(--sp-2); bottom: var(--sp-1); margin: 0 !important; font: 500 9px/1 var(--ff-body) !important; letter-spacing: .04em; color: #ffffff38 !important; pointer-events: none; z-index: 5; }
#game .map-footer .build-tag { display: none; }
/* language: an icon-led text control, not a boxed chip */
#game .language-trigger { background: none !important; border: 0 !important; box-shadow: none !important; padding: var(--sp-1) var(--sp-2); color: #d9c9a4; font: 600 var(--fs-small)/1 var(--ff-body); gap: .4em; opacity: .85; }
#game .language-trigger:hover { opacity: 1; }

/* ---------------------------------------------------------------- map */
/* reward places are named like every other place: ink on parchment, no light box; the padlock already says "locked" */
#game .atlas-map .node .label.reward-label { background: radial-gradient(ellipse at 50% 50%, #f3e4c0e0 0%, #f0e0b9aa 45%, #ecd9ae00 72%) !important; border: 0 !important; box-shadow: none !important; padding: calc(var(--u) * .5) calc(var(--u) * 1.4); }
#game .atlas-map .node.locked .reward-status { display: none; }
#game .atlas-map .reward-status { font: italic 500 var(--fs-micro)/1.2 var(--ff-story); color: #5a4428; letter-spacing: 0; text-transform: none; }
#game .map-footer .btn { white-space: nowrap; }
#game .map-footer .map-progress { white-space: nowrap; }

/* ---------------------------------------------------------------- stage briefing */
/* opponents read as a roster, not a grid of cards */
#game .brief .brief-foe { border: 0 !important; background: none !important; box-shadow: none !important; padding: calc(var(--u) * .6) 0 !important; }
#game .brief .brief-foe img { border-radius: 50% !important; box-shadow: 0 0 0 1.5px #1a120a, 0 0 0 calc(var(--u) * .5) #a98448, 0 3px 6px #000a !important; }
/* a single quiet close control: the header × stays, the footer one becomes text-weight */
#game .brief .brief-actions .btn.ghost { opacity: .75; }
#game .brief .brief-section-head small { color: var(--tx-faint); }

/* ---------------------------------------------------------------- sealed skills: compact, never a wall of empty boxes */
#game .skill.tut-locked { opacity: .55; }
#game .skill.tut-locked::after { width: calc(var(--u) * 5) !important; height: calc(var(--u) * 5) !important; top: 22% !important; }
/* reward places: name sits under the painted object, anchored to the map's inner side so it never leaves the map */
#game .atlas-map .node .label.reward-label { position: absolute !important; top: calc(100% + var(--u) * .4) !important; transform: none !important; white-space: nowrap; }
