/* css/parchment.css
 * Parchment terrain layer for Kaleth. Replaces the flat coloured tiles with
 * the trained-LoRA hand-painted ink-and-wash illustrations from
 * assets/final/terrain/. Faction control is shown as a translucent colour
 * overlay (multiply blend) instead of the old hue-rotate filter.
 *
 * Loaded after css/game.css so its rules win where they overlap.
 */

/* ── Terrain background images ─────────────────────────────────────── */

.tile-terrain-water    { background-image: url('../assets/final/terrain/terrain-water.png'); }
.tile-terrain-plains   { background-image: url('../assets/final/terrain/terrain-plains.png'); }
.tile-terrain-forest   { background-image: url('../assets/final/terrain/terrain-forest.png'); }
.tile-terrain-jungle   { background-image: url('../assets/final/terrain/terrain-jungle.png'); }
.tile-terrain-mountain { background-image: url('../assets/final/terrain/terrain-mountain.png'); }
.tile-terrain-pass     { background-image: url('../assets/final/terrain/terrain-pass.png'); }
.tile-terrain-river    { background-image: url('../assets/final/terrain/terrain-river.png'); }
.tile-terrain-coast    { background-image: url('../assets/final/terrain/terrain-coast.png'); }
.tile-terrain-port     { background-image: url('../assets/final/terrain/terrain-port.png'); }
.tile-terrain-road     { background-image: url('../assets/final/terrain/terrain-road.png'); }
.tile-terrain-airport  { background-image: url('../assets/final/terrain/terrain-airport.png'); }
.tile-terrain-capital  { background-image: url('../assets/final/terrain/terrain-capital.png'); }
.tile-terrain-garrison { background-image: url('../assets/final/terrain/terrain-garrison.png'); }
.tile-terrain-garrison_capital { background-image: url('../assets/final/terrain/terrain-garrison_capital.png'); }
.tile-terrain-farmland { background-image: url('../assets/final/terrain/terrain-farmland.png'); }
.tile-terrain-oil      { background-image: url('../assets/final/terrain/terrain-oil.png'); }
.tile-terrain-ruins    { background-image: url('../assets/final/terrain/terrain-ruins.png'); }

[class*="tile-terrain-"] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #e8d8b0;  /* parchment fallback */
}

/* ── Faction control: translucent multiply overlay ─────────────────── */
/* No more hue-rotate filter. We layer a faction-coloured pane on top
   of the parchment art via a ::after pseudo-element.                   */

.tile { position: relative; }

.tile[data-owner="iron_veil"]::after,
.tile[data-owner="tidal_accord"]::after,
.tile[data-owner="root_council"]::after,
.tile[data-owner="dust_compact"]::after,
.tile[data-owner="garrison"]::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: multiply;
  z-index: 1;
}

.tile[data-owner="iron_veil"]::after    { background: rgba(122,  30,  30, 0.32); }
.tile[data-owner="tidal_accord"]::after { background: rgba( 26,  58, 106, 0.32); }
.tile[data-owner="root_council"]::after { background: rgba( 42,  90,  42, 0.32); }
.tile[data-owner="dust_compact"]::after { background: rgba(168, 104,  32, 0.32); }
.tile[data-owner="garrison"]::after     { background: rgba( 40,  40,  40, 0.50); }

/* Faction-coloured rim — drop-shadow respects the octagon clip-path.
   Two stacked shadows give a thicker, more visible outline. */
.tile[data-owner="iron_veil"]    { filter: drop-shadow(0 0 1.5px #c04040) drop-shadow(0 0 1.5px #c04040); }
.tile[data-owner="tidal_accord"] { filter: drop-shadow(0 0 1.5px #2a6090) drop-shadow(0 0 1.5px #2a6090); }
.tile[data-owner="root_council"] { filter: drop-shadow(0 0 1.5px #2a7030) drop-shadow(0 0 1.5px #2a7030); }
.tile[data-owner="dust_compact"] { filter: drop-shadow(0 0 1.5px #b87018) drop-shadow(0 0 1.5px #b87018); }
.tile[data-owner="garrison"]     { filter: drop-shadow(0 0 1.5px #1a1a1a) drop-shadow(0 0 1.5px #1a1a1a); }

/* Garrison NPC unit badge — generic skull on a grey ring. */
.tile[data-owner="garrison"] .tile-unit-shield::before {
  content: '☠';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #f0e8d8;
  font-size: 1.1em;
  text-shadow: 0 0 2px #000;
  z-index: 3;
}

/* Make the icon/badge spans sit above the faction overlay */
.tile-icon, .tile-unit-badge, .tile-leader-badge, .tile-fort-badge,
.tile-unit-shield {
  position: relative;
  z-index: 2;
}

/* ── Fog of war: gently darken + desaturate so artwork stays readable ── */
.tile.tile-fogged {
  filter: brightness(0.78) saturate(0.45) sepia(0.15);
  position: relative;
}
.tile.tile-fogged::after { display: none; }  /* no faction tint when fogged */
.tile.tile-fogged::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../assets/final/fog/fog-cloud.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.72;
  pointer-events: none;
  z-index: 1;
}

/* ── Tile icon: emoji shrunk + given a parchment-coloured shadow so it
   still reads against the busy illustrated background. ──────────── */
.tile-icon {
  font-size: 11px;
  text-shadow:
    0 0 2px rgba(255, 244, 220, 0.95),
    0 0 4px rgba(255, 244, 220, 0.7);
  position: absolute;
  top: 2px;
  left: 3px;
  line-height: 1;
}

/* ── Unit shields: parchment-art tokens in bottom-right of the tile.
   Faction is shown as a coloured ring around the shield. Stack count
   appears as a small badge in the top-right of the shield. ──────── */
.tile-unit-shield {
  position: absolute;
  bottom: 4%;
  right: 4%;
  width: 44%;
  height: 44%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: rgba(250, 244, 224, 0.85);  /* default cream — overridden per faction below */
  border-radius: 50%;
  border: 2px solid #888;
  box-shadow: 0 1px 3px rgba(0,0,0,0.35);
  pointer-events: none;
}

/* Faction-coloured shield disk so units are unmistakably claimed.
   The sepia ink artwork stays on top — readable, but the disk is faction-coloured. */
.tile-unit-shield[data-faction="iron_veil"]    { background-color: rgba(224, 112, 112, 0.92); }
.tile-unit-shield[data-faction="tidal_accord"] { background-color: rgba( 96, 168, 216, 0.92); }
.tile-unit-shield[data-faction="root_council"] { background-color: rgba( 80, 168,  80, 0.92); }
.tile-unit-shield[data-faction="dust_compact"] { background-color: rgba(232, 152,  32, 0.92); }
.tile-unit-shield.tile-unit-moved { opacity: 0.4; }

/* Stack count pip — only shown when data-count is non-empty */
.tile-unit-shield[data-count]:not([data-count=""])::after {
  content: attr(data-count);
  position: absolute;
  top: -4px;
  right: -4px;
  background: #3a3028;
  color: #faf8f2;
  font-size: 9px;
  font-weight: 900;
  font-family: 'Cinzel', serif;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 8px;
  border: 1px solid rgba(250,244,224,0.9);
  text-shadow: 0 1px 1px rgba(0,0,0,0.5);
}

/* Faction-coloured rings */
.tile-unit-shield[data-faction="iron_veil"]    { border-color: #e07070; }
.tile-unit-shield[data-faction="tidal_accord"] { border-color: #60a8d8; }
.tile-unit-shield[data-faction="root_council"] { border-color: #50a850; }
.tile-unit-shield[data-faction="dust_compact"] { border-color: #e89820; }

/* Per-unit-type artwork */
.tile-unit-shield.tile-unit-militia        { background-image: url('../assets/final/unit/unit-militia.png'); }
.tile-unit-shield.tile-unit-infantry       { background-image: url('../assets/final/unit/unit-infantry.png'); }
.tile-unit-shield.tile-unit-special_forces { background-image: url('../assets/final/unit/unit-sf.png'); }
.tile-unit-shield.tile-unit-armoured       { background-image: url('../assets/final/unit/unit-armoured.png'); }
.tile-unit-shield.tile-unit-naval_fleet    { background-image: url('../assets/final/unit/unit-naval.png'); }
.tile-unit-shield.tile-unit-air_support    { background-image: url('../assets/final/unit/unit-air.png'); }

/* ── Faction crests (used in picker, opponents bar, bottom panel) ─── */
.faction-crest {
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.faction-crest-iron_veil    { background-image: url('../assets/final/crest/crest-iron.png'); }
.faction-crest-tidal_accord { background-image: url('../assets/final/crest/crest-tidal.png'); }
.faction-crest-root_council { background-image: url('../assets/final/crest/crest-root.png'); }
.faction-crest-dust_compact { background-image: url('../assets/final/crest/crest-dust.png'); }

/* Faction picker — replace the colour dot with the crest */
.faction-card-crest {
  width: 80px;
  height: 80px;
  margin: 0 auto 12px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.18));
}

/* Top-bar opponent crests (24px) */
.opp-crest {
  width: 24px;
  height: 24px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

/* Bottom-panel current-faction crest (36px), overrides .faction-dot-lg sizing */
.faction-dot-lg.faction-crest {
  width: 36px;
  height: 36px;
  border-radius: 0;
  background-color: transparent !important;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));
}

/* ── Garrison icon for the dice modal (replaces 🏰 emoji) ─────────── */
.dice-modal.dice-def-fixed #dice-def-1 {
  background-image: url('../assets/final/garrison/icon-garrison.png');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  color: transparent;
  text-shadow: none;
  width: 56px;
  height: 56px;
  display: inline-block;
}

/* ── UI ornaments: phase-guide flanking scrolls ────────────────────── */
.phase-guide {
  position: relative;
}
.phase-guide::before,
.phase-guide::after {
  content: '';
  width: 28px;
  height: 28px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
  opacity: 0.85;
}
.phase-guide::before {
  background-image: url('../assets/final/ui/ui-scroll-left.png');
  order: -1;
}
.phase-guide::after {
  background-image: url('../assets/final/ui/ui-scroll-right.png');
  margin-left: auto;
}

/* ── End Turn button: wax-sealed press ────────────────────────────── */
.action-btn.btn-primary {
  position: relative;
  background-image: url('../assets/final/ui/ui-wax-seal.png');
  background-size: 140% 220%;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #5a1a1a;
  color: #faf2e4;
  text-shadow: 0 1px 2px rgba(0,0,0,0.7);
  border: 1px solid rgba(40, 10, 10, 0.6);
}
.action-btn.btn-primary:hover {
  background-color: #441010;
}

/* Make the existing selection / move / attack outlines pop on top */
.tile-selected, .tile-movable, .tile-attack,
.tile-preview, .tile-preview-selected {
  z-index: 3;
}

/* ── Leader badge: per-faction portrait, replaces the crown emoji ── */
.tile-leader-badge {
  position: absolute;
  top: 4%; left: 4%;
  width: 32%; height: 32%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 50%;
  border: 2px solid currentColor;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  pointer-events: none;
  z-index: 3;
}
.faction-leader-iron_veil    { background-image: url('../assets/final/leader/leader-iron.png');  color: #c04040; }
.faction-leader-tidal_accord { background-image: url('../assets/final/leader/leader-tidal.png'); color: #2a6090; }
.faction-leader-root_council { background-image: url('../assets/final/leader/leader-root.png');  color: #2a7030; }
.faction-leader-dust_compact { background-image: url('../assets/final/leader/leader-dust.png');  color: #b87018; }

/* Garrison Commander NPC: neutral parchment shield with a fortress glyph */
.tile-unit-shield.tile-unit-garrison_commander {
  background-color: rgba(60, 50, 40, 0.85);
  border-color: #d4b860;
  background-image: url('../assets/final/garrison/icon-garrison.png');
}
