/* =========================
   TILES / CARTE STYLES (TACTICAL RPG)
   ========================= */

#mapContainer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 20% 10%, rgba(255, 245, 210, 0.4), transparent 70%);
  mix-blend-mode: overlay;
  z-index: 10;
}

#mapContainer::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at center, transparent 40%, rgba(15, 20, 30, 0.6) 100%);
  z-index: 11;
}

#mapContainer.isometric-mode::before,
#mapContainer.isometric-mode::after {
  display: none;
}

.tile {
  position: absolute !important;
  width: 32px;
  height: 32px;
  border-radius: 3px;
  filter: brightness(var(--b, 1)) saturate(var(--s, 1));

  border-bottom: 4px solid rgba(0, 0, 0, 0.3);
  border-right: 3px solid rgba(0, 0, 0, 0.2);

  box-shadow:
    inset 1px 1px 2px rgba(255, 255, 255, 0.25),
    inset -1px -2px 3px rgba(0, 0, 0, 0.2),
    1px 3px 5px rgba(0, 0, 0, 0.35);
  transform-style: preserve-3d;
}

.tile::before,
.tile::after,
.wall::before,
.wall::after,
.tree::before,
.tree::after,
.water::before,
.water::after {
  pointer-events: none !important;
}

/* =========================
   BIOMES - SOLS (GROUND)
   ========================= */

/* Plaine / Herbe classique */
.ground {
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.1) 0%, transparent 40%),
    linear-gradient(135deg, #7ebd42 0%, #5ca12b 100%);
  border-color: rgba(0, 0, 0, 0.2);
  border-bottom-color: #3f731a;
  border-right-color: #4a871f;
}

/* Biome désert */
.biome-desert .ground,
.biome-donjon_desert .ground,
.biome-boss_desert .ground {
  background:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.05) 0px, transparent 2px, transparent 6px),
    linear-gradient(135deg, #fce093 0%, #e8bc51 100%);
  border-color: rgba(100, 75, 25, 0.2);
  border-bottom-color: #b58c30;
  border-right-color: #c99c38;
}

/* Biome mer */
.biome-mer .ground,
.biome-donjon_mer .ground,
.biome-boss_mer .ground {
  background: linear-gradient(135deg, #fff0b3 0%, #e6cb73 100%) !important;
  border-color: rgba(100, 80, 40, 0.2) !important;
  border-bottom-color: #b39a49 !important;
  border-right-color: #ccb154 !important;
}

/* Biome neige / noel */
.biome-noel .ground,
.biome-donjon_noel .ground,
.biome-boss_noel .ground,
.biome-neige .ground,
.biome-donjon_neige .ground,
.biome-boss_neige .ground {
  background:
    radial-gradient(circle at 30% 30%, #ffffff 0%, #e6f0fa 100%) !important;
  border-color: rgba(180, 200, 220, 0.3) !important;
  border-bottom-color: #aebfd1 !important;
  border-right-color: #c0d1e3 !important;
}

/* Biome forêt */
.biome-foret .ground,
.biome-donjon_foret .ground,
.biome-boss_foret .ground {
  background: linear-gradient(135deg, #3a6b28 0%, #204513 100%);
  border-color: #172a11;
  border-bottom-color: #122909;
  border-right-color: #16330b;
}

/* Biome dinosaures */
.biome-dinosaures .ground,
.biome-donjon_dinosaures .ground,
.biome-boss_dinosaures .ground {
  background:
    radial-gradient(circle at 20% 80%, rgba(0, 0, 0, 0.1) 0%, transparent 30%),
    linear-gradient(135deg, #1e3f20 0%, #0e1e10 100%) !important;
  border-color: #0b1a0d !important;
  border-bottom-color: #061007 !important;
  border-right-color: #081409 !important;
}

/* Biome minotor */
.biome-minotor .ground,
.biome-donjon_minotor .ground,
.biome-boss_minotor .ground {
  background:
    radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.15), transparent 60%),
    linear-gradient(135deg, #4d3a2d 0%, #1f1610 100%) !important;
  border-color: #1f1610 !important;
  border-bottom-color: #150e0a !important;
  border-right-color: #100a07 !important;
}

/* Biome cimetière */
.biome-cimetiere .ground,
.biome-donjon_cimetiere .ground,
.biome-boss_cimetiere .ground {
  background:
    radial-gradient(circle at 10% 20%, rgba(155, 89, 182, 0.08) 0%, transparent 40%),
    linear-gradient(135deg, #1a171d 0%, #141115 100%) !important;
  border-color: #0d0c0e !important;
  border-bottom-color: #070607 !important;
  border-right-color: #09080a !important;
}

/* Biome montagne */
.biome-montagne .ground,
.biome-donjon_montagne .ground,
.biome-boss_montagne .ground {
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.15), transparent 45%),
    linear-gradient(135deg, #bdc3c7 0%, #7f8c8d 100%) !important;
  border-color: #7f8c8d !important;
  border-bottom-color: #5c6266 !important;
  border-right-color: #4a4f52 !important;
}

/* Biome volcan */
[class*="biome-volcan"] .ground {
  background:
    radial-gradient(circle at 70% 30%, rgba(231, 76, 60, 0.3) 0%, transparent 40%),
    linear-gradient(135deg, #2c1111 0%, #0a0a0a 100%);
  border-color: rgba(231, 76, 60, 0.2);
  border-bottom-color: #1a0808;
  border-right-color: #200a0a;
}

/* Biome céleste */
[class*="biome-celeste"] .ground {
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.9) 0%, transparent 70%),
    linear-gradient(135deg, #ffffff 0%, #dfe4ea 100%) !important;
  border-color: rgba(220, 220, 220, 0.4) !important;
  border-bottom-color: #a4b0be !important;
  border-right-color: #ced6e0 !important;
}

/* =========================
   ELEMENTS COMMUNS (MURS, EAU, ARBRES)
   ========================= */

/* Murs par défaut */
.wall {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.1) 100%),
    #828f99;
  border-bottom: 5px solid #4a545c !important;
  border-right: 4px solid #5a6670 !important;
  box-shadow:
    inset 1px 1px 0 rgba(255, 255, 255, 0.3),
    inset -1px -2px 0 rgba(0, 0, 0, 0.2),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
  border-radius: 2px;
}

/* Eau par défaut */
.water {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, transparent 40%),
    linear-gradient(180deg, #3498db, #2980b9);
  border-bottom: 3px solid #1a5276 !important;
  border-right: 3px solid #21618c;
  border-radius: 4px;
  box-shadow:
    inset 0 2px 4px rgba(255, 255, 255, 0.3),
    0 2px 4px rgba(0, 0, 0, 0.2) !important;
  animation: waterBreeze 3s ease-in-out infinite alternate;
}

@keyframes waterBreeze {
  0% {
    filter: brightness(1) contrast(1);
  }

  100% {
    filter: brightness(1.1) contrast(1.05);
  }
}

/* Bulles animées pour les cases de pêche (eau) */
.water {
  position: relative;
  overflow: hidden;
}

.water-bubble {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  border: 0.5px solid rgba(255, 255, 255, 0.7);
  box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.9), 0 0 2px rgba(255, 255, 255, 0.5);
  pointer-events: none;
  z-index: 1;
  animation: floatBubble infinite linear;
}

@keyframes floatBubble {
  0% {
    transform: translateY(0) translateX(0) scale(0.6);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  50% {
    transform: translateY(-12px) translateX(2px) scale(0.9);
  }
  90% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(-28px) translateX(-1px) scale(1.3);
    opacity: 0;
  }
}


/* Arbres par défaut */
.tree {
  background: radial-gradient(circle at 30% 30%, #a4e067 0%, #5ca12b 50%, #2b5c10 100%);
  border-radius: 50% 50% 40% 40%;
  border-bottom: 5px solid #1c3d0b !important;
  border-right: 3px solid #244f0e !important;
  box-shadow:
    inset 2px 2px 4px rgba(255, 255, 255, 0.3),
    0 6px 8px rgba(0, 0, 0, 0.4) !important;
}

/* Biome forêt (Oak with brown trunk) */
.biome-foret .tree,
.biome-donjon_foret .tree,
.biome-boss_foret .tree {
  background: radial-gradient(circle at 35% 35%, #2ecc71 0%, #27ae60 60%, #153c11 100%) !important;
  border-radius: 50% 50% 45% 45% !important;
  border-bottom: 5px solid #196f3d !important;
  border-right: 3px solid #229954 !important;
  height: 26px !important;
  margin-top: 1px;
}
.biome-foret .tree::before,
.biome-donjon_foret .tree::before,
.biome-boss_foret .tree::before {
  content: "" !important;
  position: absolute !important;
  bottom: -6px !important;
  left: 13px !important;
  width: 6px !important;
  height: 8px !important;
  background: #7e5109 !important;
  border-radius: 1px !important;
  z-index: -1 !important;
}

/* Biome jungle (Bamboo) */
.biome-jungle .tree,
.biome-donjon_jungle .tree,
.biome-boss_jungle .tree {
  background: repeating-linear-gradient(180deg, #2ecc71 0px, #2ecc71 6px, #27ae60 6px, #27ae60 8px) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #1e824c !important;
  border-right: 2px solid #2ecc71 !important;
  box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.4), 0 4px 6px rgba(0, 0, 0, 0.3) !important;
}
.biome-jungle .tree::before,
.biome-donjon_jungle .tree::before,
.biome-boss_jungle .tree::before {
  content: "" !important;
  position: absolute !important;
  top: 2px;
  bottom: 2px;
  left: 50%;
  width: 2px;
  background: rgba(255, 255, 255, 0.25) !important;
  transform: translateX(-50%);
}

/* Biome désert (Cactus) */
.biome-desert .tree,
.biome-donjon_desert .tree,
.biome-boss_desert .tree {
  background: linear-gradient(135deg, #2ecc71 0%, #27ae60 50%, #1e824c 100%) !important;
  clip-path: polygon(35% 100%, 35% 65%, 10% 65%, 10% 25%, 25% 25%, 25% 50%, 35% 50%, 35% 15%, 50% 5%, 65% 15%, 65% 45%, 75% 45%, 75% 20%, 90% 20%, 90% 60%, 65% 60%, 65% 100%) !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4) !important;
}

/* Biome mer (Driftwood) */
.biome-mer .tree,
.biome-donjon_mer .tree,
.biome-boss_mer .tree {
  background: linear-gradient(180deg, #d2b48c 0%, #a67c52 50%, #704d2e 100%) !important;
  border-radius: 4px 12px 10px 4px !important;
  border-bottom: 4px solid #4a2c17 !important;
  border-right: 3px solid #5c381f !important;
  width: 28px !important;
  height: 14px !important;
  margin-top: 10px;
  margin-left: 2px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5) !important;
}

/* Biome neige (Frozen Pine) */
.biome-neige .tree,
.biome-donjon_neige .tree,
.biome-boss_neige .tree {
  background: linear-gradient(135deg, #16a085 0%, #0e6251 100%) !important;
  clip-path: polygon(50% 0, 0 100%, 100% 100%) !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4) !important;
}
.biome-neige .tree::after,
.biome-donjon_neige .tree::after,
.biome-boss_neige .tree::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 25% !important;
  right: 25% !important;
  height: 40% !important;
  background: #ffffff !important;
  clip-path: polygon(50% 0, 0 100%, 100% 100%) !important;
}

/* =========================
   DECLINAISONS MURS, EAU, ARBRES (PAR BIOME)
   ========================= */

.biome-mer .wall,
.biome-donjon_mer .wall,
.biome-boss_mer .wall {
  background: #5c6266 !important;
  border-bottom-color: #2d3133 !important;
  border-right-color: #35393c !important;
}

.biome-mer .water,
.biome-donjon_mer .water,
.biome-boss_mer .water {
  background: linear-gradient(180deg, #00cec9, #0984e3) !important;
  border-bottom-color: #0652dd !important;
}

.biome-noel .wall,
.biome-donjon_noel .wall,
.biome-boss_noel .wall {
  background: repeating-linear-gradient(45deg, #ff4757 0px, #ff4757 8px, #ffffff 8px, #ffffff 16px) !important;
  border-bottom-color: #cf2534 !important;
  border-right-color: #e83a4b !important;
}

.biome-noel .tree,
.biome-donjon_noel .tree,
.biome-boss_noel .tree {
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, #2ed573 55%, #0c2461 100%) !important;
  border-bottom-color: #081a44 !important;
  border-right-color: #091e4d !important;
}

.biome-noel .water,
.biome-donjon_noel .water,
.biome-boss_noel .water {
  background: linear-gradient(135deg, #74b9ff, #0984e3) !important;
  border-bottom-color: #0984e3 !important;
}

.biome-dinosaures .wall,
.biome-donjon_dinosaures .wall,
.biome-boss_dinosaures .wall {
  background: linear-gradient(135deg, #34495e 0%, #1a252f 100%) !important;
  border-bottom: 4px solid #0f171e !important;
  border-right: 3px solid #141e28 !important;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.15), inset -1px -2px 0 rgba(0, 0, 0, 0.3), 2px 4px 6px rgba(0, 0, 0, 0.4) !important;
  border-radius: 3px !important;
}

.biome-dinosaures .tree,
.biome-donjon_dinosaures .tree,
.biome-boss_dinosaures .tree {
  background: linear-gradient(135deg, #10ac84 0%, #06523f 100%) !important;
  border-radius: 100% 0 100% 0 !important;
  transform: rotate(-45deg);
  border: 2px solid #000 !important;
  border-bottom: 4px solid #063c2e !important;
  border-right: 3px solid #084c3c !important;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4) !important;
}

.biome-dinosaures .water,
.biome-donjon_dinosaures .water,
.biome-boss_dinosaures .water {
  background: linear-gradient(180deg, #1f2d1b, #0a1009) !important;
  border-bottom-color: #030503 !important;
  border-right-color: #030503 !important;
}

.biome-minotor .wall,
.biome-donjon_minotor .wall,
.biome-boss_minotor .wall {
  background: linear-gradient(180deg, #444b54, #15181b) !important;
  border-bottom-color: #111315 !important;
  border-right-color: #1c2024 !important;
}

.biome-minotor .tree,
.biome-donjon_minotor .tree,
.biome-boss_minotor .tree {
  background: radial-gradient(circle at 35% 35%, #2d1f3d 0%, #172b1a 60%, #0d120e 100%) !important;
  border-bottom-color: #060a07 !important;
  border-right-color: #080d09 !important;
}

.biome-minotor .water,
.biome-donjon_minotor .water,
.biome-boss_minotor .water {
  background: linear-gradient(180deg, #3d2314, #140b06) !important;
  border-bottom-color: #060302 !important;
  border-right-color: #080403 !important;
}

.biome-cimetiere .wall,
.biome-donjon_cimetiere .wall,
.biome-boss_cimetiere .wall {
  background: linear-gradient(180deg, #7f8c8d 0%, #2c3e50 100%) !important;
  border-radius: 12px 12px 0 0 !important;
  border-bottom-color: #1a252f !important;
  border-right-color: #25313d !important;
}

.biome-cimetiere .tree,
.biome-donjon_cimetiere .tree,
.biome-boss_cimetiere .tree {
  background: linear-gradient(135deg, #120917 0%, #09040c 100%) !important;
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30% !important;
  border-bottom-color: #040206 !important;
  border-right-color: #060308 !important;
}

.biome-cimetiere .water,
.biome-donjon_cimetiere .water,
.biome-boss_cimetiere .water {
  background: linear-gradient(180deg, #4b1a4b, #120512) !important;
  border-bottom-color: #060206 !important;
  border-right-color: #090309 !important;
}

.biome-montagne .wall,
.biome-donjon_montagne .wall,
.biome-boss_montagne .wall {
  background: repeating-linear-gradient(0deg, #2c3e50 0px, #2c3e50 6px, #1a252f 6px, #1a252f 12px) !important;
  border-bottom-color: #0e141a !important;
  border-right-color: #151e26 !important;
}

.biome-montagne .tree,
.biome-donjon_montagne .tree,
.biome-boss_montagne .tree {
  background: radial-gradient(circle at 30% 30%, #ffbe76 0%, #ff7f50 40%, #ff4757 100%) !important;
  border-radius: 50% 20% 50% 20% / 50% 20% 50% 20% !important; /* Pointy autumn leaf shape */
  border-bottom: 4px solid #b33939 !important;
  border-right: 3px solid #cd6133 !important;
  box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.45) !important;
}

.biome-montagne .water,
.biome-donjon_montagne .water,
.biome-boss_montagne .water {
  background: linear-gradient(180deg, #10ac84, #06523f) !important;
  border-bottom-color: #02291f !important;
  border-right-color: #033025 !important;
}

[class*="biome-volcan"] .wall {
  background: repeating-linear-gradient(45deg, #e74c3c 0px, #2c0e0e 8px, #1c0505 16px) !important;
  border-bottom-color: #78281f !important;
  border-right-color: #943126 !important;
}

[class*="biome-volcan"] .tree {
  background: linear-gradient(135deg, #111 0%, #222 50%, #000 100%) !important;
  border-radius: 35% 35% 10% 10% !important;
  border-bottom: 5px solid #ff4500 !important;
  border-right: 3px solid #b32d00 !important;
  box-shadow: 0 0 10px rgba(255, 69, 0, 0.4) !important;
}
/* Volcan Ebony tree glowing core animation */
[class*="biome-volcan"] .tree::after {
  content: "" !important;
  position: absolute !important;
  top: 4px !important;
  bottom: 4px !important;
  left: 14px !important;
  width: 3px !important;
  background: linear-gradient(180deg, #ff4500, #ff8c00, #ff4500) !important;
  box-shadow: 0 0 4px #ff4500 !important;
  animation: lavaPulse 1.5s infinite alternate !important;
}
@keyframes lavaPulse {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

[class*="biome-volcan"] .water {
  background: linear-gradient(180deg, #ff4d4d, #990000) !important;
  border-bottom-color: #800000 !important;
  border-right-color: #660000 !important;
  animation: lavaFlow 3s ease-in-out infinite alternate !important;
}

@keyframes lavaFlow {
  0% {
    filter: brightness(1) contrast(1.1);
  }

  100% {
    filter: brightness(1.2) contrast(1.2) drop-shadow(0 0 4px #ff6633);
  }
}

[class*="biome-celeste"] .wall {
  background: repeating-linear-gradient(0deg, #f1c40f 0px, #ffffff 6px, #f5f6fa 12px) !important;
  border-bottom-color: #d4ac0d !important;
  border-right-color: #b7950b !important;
}

[class*="biome-celeste"] .tree {
  background: radial-gradient(circle at 30% 30%, #ffffff 0%, #dcdde1 80%, #7f8c8d 100%) !important;
  border-bottom-color: #7f8c8d !important;
  border-right-color: #dcdde1 !important;
  border-radius: 50% 50% 45% 45% !important;
}

[class*="biome-celeste"] .water {
  background: linear-gradient(180deg, #a5b1c2, #4b6584) !important;
  border-bottom-color: #2b3b4e !important;
  border-right-color: #374b62 !important;
}

/* =========================
   DETAILS & DECORATIONS
   ========================= */

.pontoon {
  background: linear-gradient(135deg, #a66e44 0%, #7d4e2d 100%) !important;
  background-image: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, rgba(0, 0, 0, 0.2) 6px, rgba(0, 0, 0, 0.2) 7px) !important;
  border-bottom: 4px solid #4a2c17 !important;
  border-right: 3px solid #5c381f !important;
  box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), 1px 3px 5px rgba(0, 0, 0, 0.4) !important;
  border-radius: 2px;
  z-index: 2;
}

.beach {
  background: linear-gradient(135deg, #f5e6b3 0%, #d8c585 100%) !important;
  border-bottom-color: #9c8e5e !important;
  border-right-color: #84774c !important;
}

.boat-travel {
  background: linear-gradient(135deg, #d19a66 0%, #a66e44 100%) !important;
  border-bottom: 4px solid #5c381f !important;
  border-right: 3px solid #6b4327 !important;
  border-radius: 8px 8px 20px 20px !important;
  box-shadow: 1px 4px 6px rgba(0, 0, 0, 0.4) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.boat-travel::after {
  content: "⛵";
  font-size: 16px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.5));
  animation: boatBobbing 2s infinite ease-in-out !important;
}

@keyframes boatBobbing {

  0%,
  100% {
    transform: translateY(0) rotate(-3deg);
  }

  50% {
    transform: translateY(-3px) rotate(3deg);
  }
}

.boat-badge {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #996515 100%);
  border: 1px solid #d8b46a;
  color: #efe6d2;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 6px;
  padding: 1px 3px;
  border-radius: 3px;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.8);
  white-space: nowrap;
  pointer-events: none;
  z-index: 5;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* =========================
   ETATS SPECIFIQUES
   ========================= */

.tile.far {
  filter: blur(0.7px) brightness(0.85);
  transform: scale(0.97);
}

.tile.near {
  filter: brightness(1.08);
}

.tile[data-pastille] {
  background: radial-gradient(circle, #ff5252 0%, #b30000 100%) !important;
  border-bottom: 4px solid #7a0000 !important;
  border-right: 3px solid #990000 !important;
  box-shadow:
    0 0 15px rgba(255, 82, 82, 0.8),
    inset 1px 1px 4px rgba(255, 255, 255, 0.4) !important;
}

/* =========================
   PORTAILS ET TRANSITIONS
   ========================= */

/* Sorties de carte */
.tile.map-exit {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.8), rgba(255, 140, 0, 0.8)) !important;
  border-bottom: 4px solid #cc7000 !important;
  border-right: 3px solid #e67e00 !important;
  box-shadow:
    0 0 15px rgba(255, 165, 0, 0.6),
    inset 1px 1px 6px rgba(255, 255, 255, 0.6) !important;
  animation: mapExitBreathe 2s ease-in-out infinite;
}

@keyframes mapExitBreathe {

  0%,
  100% {
    filter: brightness(1);
  }

  50% {
    filter: brightness(1.2);
    box-shadow: 0 0 20px rgba(255, 200, 0, 0.8), inset 0 0 10px #fff !important;
  }
}

/* Entrée de donjon (Grottes adaptées aux biomes) */
.tile.dungeon-entrance {
  position: absolute !important;
  background: var(--cave-rock-color, #4a4a4a) !important;
  border-radius: 50% 50% 6px 6px !important;
  border: 2px solid var(--cave-edge-color, #333) !important;
  border-bottom: 5px solid var(--cave-bottom-color, #222) !important;
  border-right: 4px solid var(--cave-right-color, #2b2b2b) !important;
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.3),
    0 4px 8px rgba(0, 0, 0, 0.4),
    0 0 10px var(--cave-glow-color, rgba(255, 255, 255, 0.1)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  animation: cavePulse 2.5s ease-in-out infinite alternate !important;
}

.tile.dungeon-entrance::before {
  content: "" !important;
  position: absolute !important;
  top: 6px !important;
  left: 6px !important;
  right: 6px !important;
  bottom: 0 !important;
  background: #000000 !important;
  border-radius: 50% 50% 4px 4px !important;
  box-shadow: 
    inset 0 2px 4px rgba(0, 0, 0, 0.9),
    0 0 6px var(--cave-glow-color, rgba(255, 255, 255, 0.3)) !important;
  z-index: 1 !important;
}

@keyframes cavePulse {
  0% {
    box-shadow:
      inset 0 2px 3px rgba(255, 255, 255, 0.3),
      0 4px 8px rgba(0, 0, 0, 0.4),
      0 0 6px var(--cave-glow-color, rgba(255, 255, 255, 0.2)) !important;
  }
  100% {
    box-shadow:
      inset 0 2px 3px rgba(255, 255, 255, 0.3),
      0 4px 8px rgba(0, 0, 0, 0.4),
      0 0 16px var(--cave-glow-color, rgba(255, 255, 255, 0.6)) !important;
  }
}

/* Variables de Grottes par Biome */

/* Plaine */
.biome-plaine, .biome-donjon_plaine, .biome-boss_plaine {
  --cave-rock-color: #5ca12b;
  --cave-edge-color: #3f731a;
  --cave-bottom-color: #2b5310;
  --cave-right-color: #356515;
  --cave-glow-color: rgba(126, 189, 66, 0.7);
}

/* Forêt / Jungle / Dinosaures */
.biome-foret, .biome-donjon_foret, .biome-boss_foret,
.biome-jungle, .biome-donjon_jungle, .biome-boss_jungle,
.biome-dinosaures, .biome-donjon_dinosaures, .biome-boss_dinosaures {
  --cave-rock-color: #27461f;
  --cave-edge-color: #1c3316;
  --cave-bottom-color: #12230e;
  --cave-right-color: #162a12;
  --cave-glow-color: rgba(46, 139, 87, 0.85);
}

/* Désert */
.biome-desert, .biome-donjon_desert, .biome-boss_desert {
  --cave-rock-color: #e8bc51;
  --cave-edge-color: #b58c30;
  --cave-bottom-color: #82621c;
  --cave-right-color: #9a7524;
  --cave-glow-color: rgba(232, 188, 81, 0.85);
}

/* Neige / Noël */
.biome-neige, .biome-donjon_neige, .biome-boss_neige,
.biome-noel, .biome-donjon_noel, .biome-boss_noel {
  --cave-rock-color: #d8ebf7;
  --cave-edge-color: #aebfd1;
  --cave-bottom-color: #7d93a8;
  --cave-right-color: #94abbf;
  --cave-glow-color: rgba(0, 180, 216, 0.85);
}

/* Montagne */
.biome-montagne, .biome-donjon_montagne, .biome-boss_montagne {
  --cave-rock-color: #7f8c8d;
  --cave-edge-color: #5c6266;
  --cave-bottom-color: #3a3e40;
  --cave-right-color: #4a4f52;
  --cave-glow-color: rgba(149, 165, 166, 0.7);
}

/* Volcan */
[class*="biome-volcan"] {
  --cave-rock-color: #2c1111;
  --cave-edge-color: #ff3300;
  --cave-bottom-color: #1a0808;
  --cave-right-color: #200a0a;
  --cave-glow-color: rgba(255, 69, 0, 0.95);
}

/* Céleste */
[class*="biome-celeste"] {
  --cave-rock-color: #dfe4ea;
  --cave-edge-color: #a4b0be;
  --cave-bottom-color: #747d8c;
  --cave-right-color: #8f9aa8;
  --cave-glow-color: rgba(0, 229, 255, 0.9);
}

/* Eveilam — Lac d'Incarnam (Nature) */
[class*="biome-eveilam"] .ground {
  background:
    radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.12) 0%, transparent 45%),
    linear-gradient(135deg, #8ec54a 0%, #6ba832 100%) !important;
  border-color: rgba(0, 0, 0, 0.15) !important;
  border-bottom-color: #4d8020 !important;
  border-right-color: #5a9228 !important;
}

[class*="biome-eveilam"] .wall {
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.2) 0%, transparent 50%),
    linear-gradient(135deg, #c4b89a 0%, #9a8e7c 100%) !important;
  border-radius: 6px !important;
  border-bottom: 5px solid #7a6e5c !important;
  border-right: 4px solid #8a7e6a !important;
  box-shadow:
    inset 1px 1px 2px rgba(255, 255, 255, 0.3),
    2px 4px 6px rgba(0, 0, 0, 0.3) !important;
}

[class*="biome-eveilam"] .tree {
  background: radial-gradient(circle at 30% 30%, #a4e067 0%, #5ca12b 55%, #3a7818 100%) !important;
  border-radius: 50% 45% 50% 45% !important;
  border-bottom: 5px solid #2b5c10 !important;
  border-right: 3px solid #387212 !important;
  box-shadow:
    inset 2px 2px 4px rgba(255, 255, 255, 0.25),
    0 5px 8px rgba(0, 0, 0, 0.35) !important;
}

[class*="biome-eveilam"] .water {
  background:
    radial-gradient(circle at 40% 30%, rgba(255, 255, 255, 0.15) 0%, transparent 50%),
    linear-gradient(180deg, #4db8e8 0%, #2e7ec0 60%, #1a5c96 100%) !important;
  border-bottom: 3px solid #14507a !important;
  border-right: 3px solid #1a6090 !important;
  box-shadow:
    inset 0 2px 6px rgba(255, 255, 255, 0.3),
    0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

/* Eveilam cave variables */
[class*="biome-eveilam"] {
  --cave-rock-color: #9a8e7c;
  --cave-edge-color: #7a6e5c;
  --cave-bottom-color: #5a5040;
  --cave-right-color: #6a604c;
  --cave-glow-color: rgba(78, 184, 232, 0.8);
}

/* Cimetière */
.biome-cimetiere, .biome-donjon_cimetiere, .biome-boss_cimetiere {
  --cave-rock-color: #1a171d;
  --cave-edge-color: #4a3754;
  --cave-bottom-color: #0d0c0e;
  --cave-right-color: #121014;
  --cave-glow-color: rgba(155, 89, 182, 0.9);
}

/* Sortie de donjon */
.tile.dungeon-exit {
  background: radial-gradient(circle at 30% 30%, #ffffff 10%, #fff9c4 40%, #fbc02d 75%, #f57f17 100%) !important;
  border-radius: 50% !important;
  border-bottom: 4px solid #f57f17 !important;
  border-right: 3px solid #e65100 !important;
  box-shadow:
    1px 4px 8px rgba(0, 0, 0, 0.4),
    0 0 20px rgba(253, 216, 53, 0.8),
    inset 1px 1px 6px rgba(255, 255, 255, 0.6) !important;
  animation: exitPulse 2s ease-in-out infinite;
}

@keyframes exitPulse {

  0%,
  100% {
    transform: scale(1);
    filter: brightness(1) saturate(1.1);
  }

  50% {
    transform: scale(1.05);
    filter: brightness(1.2) saturate(1.2);
  }
}

/* Badge au dessus des entrées */
.dungeon-badge {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(18, 5, 25, 0.9);
  color: #ffd700;
  border: 1px solid #ba68c8;
  padding: 1px 5px;
  font-size: 8px;
  font-family: 'Outfit', 'Inter', sans-serif;
  font-weight: bold;
  border-radius: 4px;
  white-space: nowrap;
  box-shadow:
    0 0 8px rgba(186, 104, 200, 0.6),
    0 0 4px rgba(255, 215, 0, 0.4);
  pointer-events: none;
  letter-spacing: 0.8px;
  animation: badgeFloat 2s ease-in-out infinite;
  z-index: 100;
}

@keyframes badgeFloat {

  0%,
  100% {
    transform: translate(-50%, 0);
  }

  50% {
    transform: translate(-50%, -3px);
  }
}

/* Assombrissement ambiant des donjons */
[class^="biome-donjon_"] .tile,
[class^="biome-boss_"] .tile {
  filter: brightness(0.75) contrast(1.1) saturate(1.15);
}

/* =========================
   DETAILS DES SORTIES DE CARTE (FLECHES)
   ========================= */

.tile.map-exit::after {
  content: "";
  position: absolute;
  inset: 4px;
  background: rgba(255, 255, 255, 0.4);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  opacity: 0.9;
  filter: drop-shadow(0 0 4px rgba(255, 200, 100, 0.5));
}

.tile.map-exit.exit-up {
  background: linear-gradient(180deg, #fff4b0 0%, #f1c40f 45%, #d35400 100%) !important;
}

.tile.map-exit.exit-down {
  background: linear-gradient(0deg, #fff4b0 0%, #f1c40f 45%, #d35400 100%) !important;
}

.tile.map-exit.exit-left {
  background: linear-gradient(90deg, #fff4b0 0%, #f1c40f 45%, #d35400 100%) !important;
}

.tile.map-exit.exit-right {
  background: linear-gradient(270deg, #fff4b0 0%, #f1c40f 45%, #d35400 100%) !important;
}

/* Découpe des flèches selon la direction */
.tile.map-exit.exit-up::after {
  clip-path: polygon(50% 0, 100% 72%, 68% 72%, 68% 100%, 32% 100%, 32% 72%, 0 72%);
}

.tile.map-exit.exit-down::after {
  clip-path: polygon(32% 0, 68% 0, 68% 28%, 100% 28%, 50% 100%, 0 28%, 32% 28%);
}

.tile.map-exit.exit-left::after {
  clip-path: polygon(0 50%, 72% 0, 72% 32%, 100% 32%, 100% 68%, 72% 68%, 72% 100%);
}

.tile.map-exit.exit-right::after {
  clip-path: polygon(0 32%, 28% 32%, 28% 0, 100% 50%, 28% 100%, 28% 68%, 0 68%);
}

/* Éclat spécifique pour la montagne */
.biome-montagne .tile.map-exit,
.biome-donjon_montagne .tile.map-exit,
.biome-boss_montagne .tile.map-exit {
  border-color: #fff5b2 !important;
  box-shadow:
    0 0 20px rgba(255, 230, 140, 0.8),
    inset 0 0 10px rgba(255, 255, 255, 0.6) !important;
}

/* =========================
   DETAILS ET ANIMATIONS DES BIOMES
   ========================= */

/* --- BIOME NOEL --- */
.biome-noel .wall::after,
.biome-donjon_noel .wall::after,
.biome-boss_noel .wall::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  background: #2ed573;
  border-radius: 50%;
  border: 1px solid #10ac84;
  left: 4px;
  bottom: 2px;
  box-shadow: inset 2px 0 #ffd200, inset -2px 0 #ffd200, 0 2px 4px rgba(0, 0, 0, 0.3);
}

.biome-noel .tree::after,
.biome-donjon_noel .tree::after,
.biome-boss_noel .tree::after {
  content: "";
  position: absolute;
  inset: 2px;
  background-image:
    radial-gradient(circle, #ff4757 2px, transparent 3px),
    radial-gradient(circle, #ffa502 2px, transparent 3px),
    radial-gradient(circle, #1e90ff 2px, transparent 3px);
  background-size: 10px 10px;
  background-position: 2px 2px, 8px 6px, 5px 10px;
  animation: xmasLights 2s infinite steps(2);
}

@keyframes xmasLights {

  0%,
  100% {
    filter: hue-rotate(0deg) brightness(1.1);
  }

  50% {
    filter: hue-rotate(45deg) brightness(1.3);
  }
}

.biome-noel .water::after,
.biome-donjon_noel .water::after,
.biome-boss_noel .water::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, transparent 45%, rgba(255, 255, 255, 0.3) 48%, rgba(255, 255, 255, 0.3) 52%, transparent 55%);
  mix-blend-mode: overlay;
}

/* --- BIOME DINOSAURES --- */
.biome-dinosaures .wall::after,
.biome-donjon_dinosaures .wall::after,
.biome-boss_dinosaures .wall::after {
  content: none !important;
  display: none !important;
}

@keyframes alertPulse {

  0%,
  100% {
    opacity: 0.8;
  }

  50% {
    opacity: 1;
    filter: brightness(1.2);
  }
}

/* --- BIOME MINOTOR --- */
.biome-minotor .tree::after,
.biome-donjon_minotor .tree::after,
.biome-boss_minotor .tree::after {
  content: "";
  position: absolute;
  inset: 3px;
  background-image: radial-gradient(circle, #ff5e57 1px, transparent 1.5px);
  background-size: 8px 8px;
  background-position: 0 0, 4px 4px;
  opacity: 0.5;
}

/* --- BIOME CIMETIERE --- */
.biome-cimetiere .ground::after,
.biome-donjon_cimetiere .ground::after,
.biome-boss_cimetiere .ground::after {
  content: "";
  position: absolute;
  inset: 4px;
  background: radial-gradient(circle at 70% 60%, rgba(255, 255, 255, 0.04) 1px, transparent 2px);
  opacity: 0.2;
}

.biome-cimetiere .wall::before,
.biome-donjon_cimetiere .wall::before,
.biome-boss_cimetiere .wall::before {
  content: "R.I.P.";
  position: absolute;
  font-size: 6px;
  color: #1a252f;
  font-weight: bold;
  width: 100%;
  text-align: center;
  top: 25%;
  left: 0;
}

.biome-cimetiere .wall::after,
.biome-donjon_cimetiere .wall::after,
.biome-boss_cimetiere .wall::after {
  content: "†";
  position: absolute;
  font-size: 10px;
  font-weight: bold;
  color: #1a252f;
  left: 50%;
  bottom: 10%;
  transform: translateX(-50%);
}

.biome-cimetiere .tree::before,
.biome-donjon_cimetiere .tree::before,
.biome-boss_cimetiere .tree::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 10%;
  right: 10%;
  height: 6px;
  background: linear-gradient(90deg, transparent 20%, #120917 20%, #120917 40%, transparent 40%, transparent 60%, #120917 60%, #120917 80%, transparent 80%);
}

.biome-cimetiere .tree::after,
.biome-donjon_cimetiere .tree::after,
.biome-boss_cimetiere .tree::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 2px;
  background: #ff5722;
  border-radius: 50%;
  left: 35%;
  top: 45%;
  box-shadow: 0 0 3px #ff5722, 8px 0 0 #ff5722, 8px 0 3px #ff5722;
  /* Yeux brillants */
  animation: scaryGaze 2.5s infinite ease-in-out;
}

@keyframes scaryGaze {

  0%,
  40%,
  100% {
    opacity: 0;
    transform: scale(0.8);
  }

  45%,
  95% {
    opacity: 1;
    transform: scale(1.1);
  }
}

/* =========================
   CORRECTION DE POSITIONNEMENT (BADGES)
   ========================= */

.tile.dungeon-entrance {
}

/* --- BIOME DINOSAURES (Détail texture du sol) --- */
.biome-dinosaures .ground::after,
.biome-donjon_dinosaures .ground::after,
.biome-boss_dinosaures .ground::after {
  content: "";
  position: absolute;
  inset: 4px;
  background: radial-gradient(circle at 30% 30%, rgba(0, 0, 0, 0.15) 2px, transparent 3px);
  opacity: 0.4;
}

/* =========================
   VILLAGE BUILDINGS (BIOME PLAINE)
   ========================= */

.biome-plaine .house-roof {
  background: linear-gradient(180deg, #e74c3c 0%, #c0392b 100%) !important;
  border-bottom: 5px solid #78281f !important;
  border-right: 4px solid #943126 !important;
  border-radius: 4px 4px 0 0 !important;
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.35),
    inset -1px -2px 0 rgba(0, 0, 0, 0.2),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
}

.biome-plaine .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.07) 0px, rgba(255, 255, 255, 0.07) 2px, transparent 2px, transparent 8px);
  opacity: 0.8;
}

.biome-plaine .house-wall {
  background: linear-gradient(135deg, #a06b3e 0%, #7d4e2d 100%) !important;
  border-bottom: 5px solid #4d3018 !important;
  border-right: 4px solid #5c3b1e !important;
  border-radius: 2px !important;
  box-shadow:
    inset 1px 1px 0 rgba(255, 255, 255, 0.2),
    inset -1px -2px 0 rgba(0, 0, 0, 0.3),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
}

.biome-plaine .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(180deg, transparent 85%, rgba(0, 0, 0, 0.2) 85%);
  background-size: 100% 8px;
}

.biome-plaine .house-window {
  background: linear-gradient(135deg, #f1c40f 0%, #f39c12 100%) !important;
  border: 3px solid #4d3018 !important;
  border-bottom: 5px solid #4d3018 !important;
  border-right: 4px solid #5c3b1e !important;
  border-radius: 6px !important;
  box-shadow:
    0 0 12px rgba(241, 196, 15, 0.85),
    inset 1px 1px 3px rgba(255, 255, 255, 0.4) !important;
}

.biome-plaine .house-window::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: 
    linear-gradient(90deg, transparent 46%, #4d3018 46%, #4d3018 54%, transparent 54%),
    linear-gradient(180deg, transparent 46%, #4d3018 46%, #4d3018 54%, transparent 54%);
  opacity: 0.85;
}

.biome-plaine .house-door {
  background: linear-gradient(180deg, #5c3a21 0%, #3e2716 100%) !important;
  border: 3px solid #2d1c10 !important;
  border-bottom: 5px solid #2d1c10 !important;
  border-right: 4px solid #3d2615 !important;
  border-radius: 10px 10px 0 0 !important;
  box-shadow:
    inset 1px 1px 2px rgba(255, 255, 255, 0.25),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
}

.biome-plaine .house-door::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  background: #f1c40f;
  border-radius: 50%;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
}

/* =========================
   FOREST & JUNGLE BUILDINGS (WOOD CABINS)
   ========================= */
.biome-foret .house-roof,
.biome-jungle .house-roof,
.biome-dinosaures .house-roof {
  background: linear-gradient(180deg, #27ae60 0%, #1e8449 100%) !important;
  border-bottom: 5px solid #145a32 !important;
  border-right: 4px solid #196f3d !important;
  border-radius: 4px 4px 0 0 !important;
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.35),
    inset -1px -2px 0 rgba(0, 0, 0, 0.2),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
}
.biome-foret .house-roof::after,
.biome-jungle .house-roof::after,
.biome-dinosaures .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0px, rgba(255, 255, 255, 0.1) 2px, transparent 2px, transparent 10px);
  opacity: 0.7;
}

.biome-foret .house-wall,
.biome-jungle .house-wall,
.biome-dinosaures .house-wall {
  background: linear-gradient(135deg, #8e5a32 0%, #6e4222 100%) !important;
  border-bottom: 5px solid #4a2b16 !important;
  border-right: 4px solid #573319 !important;
  border-radius: 2px !important;
  box-shadow:
    inset 1px 1px 0 rgba(255, 255, 255, 0.2),
    inset -1px -2px 0 rgba(0, 0, 0, 0.3),
    2px 4px 6px rgba(0, 0, 0, 0.4) !important;
}
.biome-foret .house-wall::after,
.biome-jungle .house-wall::after,
.biome-dinosaures .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(180deg, transparent 80%, rgba(0, 0, 0, 0.25) 80%);
  background-size: 100% 6px;
}

.biome-foret .house-window,
.biome-jungle .house-window,
.biome-dinosaures .house-window {
  background: linear-gradient(135deg, #ffeaa7 0%, #fdcb6e 100%) !important;
  border: 3px solid #4a2b16 !important;
  border-bottom: 5px solid #4a2b16 !important;
  border-right: 4px solid #573319 !important;
  border-radius: 4px !important;
  box-shadow: 0 0 10px rgba(253, 203, 110, 0.8), inset 1px 1px 2px rgba(255, 255, 255, 0.3) !important;
}

.biome-foret .house-door,
.biome-jungle .house-door,
.biome-dinosaures .house-door {
  background: linear-gradient(180deg, #4d2b14 0%, #301b0c 100%) !important;
  border: 3px solid #241308 !important;
  border-bottom: 5px solid #241308 !important;
  border-right: 4px solid #2e180a !important;
  border-radius: 6px 6px 0 0 !important;
}

/* =========================
   DESERT BUILDINGS (CLAY & SANDSTONE ADOBE)
   ========================= */
.biome-desert .house-roof {
  background: linear-gradient(180deg, #e5a93b 0%, #c68923 100%) !important;
  border-bottom: 5px solid #82540c !important;
  border-right: 4px solid #9c6712 !important;
  border-radius: 2px !important;
}
.biome-desert .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.05) 0px, rgba(0, 0, 0, 0.05) 4px, transparent 4px, transparent 12px);
}

.biome-desert .house-wall {
  background: linear-gradient(135deg, #ecc588 0%, #d8b070 100%) !important;
  border-bottom: 5px solid #9b7741 !important;
  border-right: 4px solid #b28b50 !important;
  border-radius: 1px !important;
}

.biome-desert .house-window {
  background: linear-gradient(135deg, #00d2d3 0%, #00a8ff 100%) !important;
  border: 3px solid #82540c !important;
  border-bottom: 5px solid #82540c !important;
  border-right: 4px solid #9c6712 !important;
  border-radius: 50% !important;
  box-shadow: 0 0 8px rgba(0, 210, 211, 0.7) !important;
}

.biome-desert .house-door {
  background: linear-gradient(180deg, #c0392b 0%, #78281f 100%) !important;
  border: 3px solid #5c1811 !important;
  border-bottom: 5px solid #5c1811 !important;
  border-radius: 8px 8px 0 0 !important;
}

/* =========================
   NEIGE & NOEL BUILDINGS (IGLOOS & ICE HOUSES)
   ========================= */
.biome-neige .house-roof,
.biome-noel .house-roof {
  background: linear-gradient(180deg, #ffffff 0%, #e1f5fe 100%) !important;
  border-bottom: 5px solid #b0bec5 !important;
  border-right: 4px solid #cfd8dc !important;
  border-radius: 16px 16px 0 0 !important;
  box-shadow: 
    inset 0 3px 5px rgba(255, 255, 255, 0.9),
    0 4px 6px rgba(0,0,0,0.15) !important;
}
.biome-neige .house-roof::after,
.biome-noel .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: 
    repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(0, 180, 216, 0.1) 8px, rgba(0, 180, 216, 0.1) 9px),
    repeating-linear-gradient(90deg, transparent 0px, transparent 12px, rgba(0, 180, 216, 0.1) 12px, rgba(0, 180, 216, 0.1) 13px);
}

.biome-neige .house-wall,
.biome-noel .house-wall {
  background: linear-gradient(135deg, #e0f7fa 0%, #b2ebf2 100%) !important;
  border-bottom: 5px solid #80deea !important;
  border-right: 4px solid #4dd0e1 !important;
  border-radius: 4px !important;
}
.biome-neige .house-wall::after,
.biome-noel .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(90deg, transparent 0px, transparent 10px, rgba(255,255,255,0.4) 10px, rgba(255,255,255,0.4) 12px);
}

.biome-neige .house-window,
.biome-noel .house-window {
  background: linear-gradient(135deg, #fff9c4 0%, #fbc02d 100%) !important;
  border: 3px solid #80deea !important;
  border-bottom: 5px solid #80deea !important;
  border-right: 4px solid #4dd0e1 !important;
  border-radius: 4px !important;
  box-shadow: 0 0 12px rgba(251, 192, 45, 0.9) !important;
}

.biome-neige .house-door,
.biome-noel .house-door {
  background: linear-gradient(180deg, #cfd8dc 0%, #90a4ae 100%) !important;
  border: 3px solid #546e7a !important;
  border-bottom: 5px solid #546e7a !important;
  border-right: 4px solid #78909c !important;
  border-radius: 50% 50% 0 0 !important;
}

/* =========================
   MONTAGNE BUILDINGS (STONE CHALETS)
   ========================= */
.biome-montagne .house-roof {
  background: linear-gradient(180deg, #374151 0%, #1f2937 100%) !important;
  border-bottom: 5px solid #111827 !important;
  border-right: 4px solid #1f2937 !important;
  border-radius: 3px 3px 0 0 !important;
}
.biome-montagne .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0px, rgba(255, 255, 255, 0.05) 3px, transparent 3px, transparent 9px);
}

.biome-montagne .house-wall {
  background: linear-gradient(135deg, #718096 0%, #4a5568 100%) !important;
  border-bottom: 5px solid #2d3748 !important;
  border-right: 4px solid #1a202c !important;
}
.biome-montagne .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: 
    repeating-linear-gradient(0deg, transparent 0px, transparent 6px, rgba(0,0,0,0.15) 6px, rgba(0,0,0,0.15) 7px),
    repeating-linear-gradient(90deg, transparent 0px, transparent 10px, rgba(0,0,0,0.15) 10px, rgba(0,0,0,0.15) 11px);
}

.biome-montagne .house-window {
  background: linear-gradient(135deg, #ffbe0b 0%, #fb5607 100%) !important;
  border: 3px solid #2d3748 !important;
  border-bottom: 5px solid #2d3748 !important;
  border-radius: 2px !important;
  box-shadow: 0 0 10px rgba(255, 190, 11, 0.8) !important;
}

.biome-montagne .house-door {
  background: linear-gradient(180deg, #8b5a2b 0%, #5c3a21 100%) !important;
  border: 3px solid #2d3748 !important;
  border-bottom: 5px solid #2d3748 !important;
  border-radius: 4px 4px 0 0 !important;
}

/* =========================
   VOLCAN BUILDINGS (BASALT RUINS)
   ========================= */
.biome-volcan .house-roof {
  background: linear-gradient(180deg, #261c1c 0%, #0f0a0a 100%) !important;
  border-bottom: 5px solid #ff3300 !important;
  border-right: 4px solid #b30000 !important;
  border-radius: 1px !important;
}
.biome-volcan .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(255, 51, 0, 0.15) 0px, rgba(255, 51, 0, 0.15) 2px, transparent 2px, transparent 12px);
}

.biome-volcan .house-wall {
  background: linear-gradient(135deg, #1c1919 0%, #0d0c0c 100%) !important;
  border-bottom: 5px solid #3a0a0a !important;
  border-right: 4px solid #4a1010 !important;
  border-left: 1px solid rgba(255, 51, 0, 0.25) !important;
  border-top: 1px solid rgba(255, 51, 0, 0.25) !important;
}

.biome-volcan .house-window {
  background: linear-gradient(135deg, #ff5722 0%, #ff3d00 100%) !important;
  border: 3px solid #1c1919 !important;
  border-bottom: 5px solid #3a0a0a !important;
  box-shadow: 0 0 15px #ff3d00, inset 0 0 4px #ffffff !important;
}

.biome-volcan .house-door {
  background: linear-gradient(180deg, #374151 0%, #1f2937 100%) !important;
  border: 3px solid #111827 !important;
  border-bottom: 5px solid #111827 !important;
  border-radius: 2px !important;
}

/* =========================
   CELESTE BUILDINGS (WHITE MARBLE TEMPLES)
   ========================= */
.biome-celeste .house-roof {
  background: linear-gradient(180deg, #ffffff 0%, #f1f2f6 80%, #ffd700 100%) !important;
  border-bottom: 5px solid #d4af37 !important;
  border-right: 4px solid #f1c40f !important;
  border-radius: 50% 50% 0 0 !important;
  box-shadow: 
    inset 0 2px 4px rgba(255,255,255,1),
    0 0 10px rgba(255, 215, 0, 0.5) !important;
}

.biome-celeste .house-wall {
  background: linear-gradient(90deg, #ffffff 0%, #f8f9fa 30%, #e9ecef 70%, #f8f9fa 100%) !important;
  border-bottom: 5px solid #cfd8dc !important;
  border-right: 4px solid #eceff1 !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}
.biome-celeste .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(90deg, rgba(212, 175, 55, 0.2) 0px, rgba(212, 175, 55, 0.2) 2px, transparent 2px, transparent 10px);
}

.biome-celeste .house-window {
  background: linear-gradient(135deg, #e0f7fa 0%, #80deea 100%) !important;
  border: 3px solid #cfd8dc !important;
  border-bottom: 5px solid #cfd8dc !important;
  border-radius: 50% !important;
  box-shadow: 0 0 12px rgba(128, 222, 234, 0.9) !important;
}

.biome-celeste .house-door {
  background: linear-gradient(180deg, #ffe066 0%, #f5b041 100%) !important;
  border: 3px solid #d4af37 !important;
  border-bottom: 5px solid #d4af37 !important;
  border-radius: 12px 12px 0 0 !important;
}

/* =========================
   CIMETIERE BUILDINGS (CRYPT & TOMBS)
   ========================= */
.biome-cimetiere .house-roof {
  background: linear-gradient(180deg, #322c37 0%, #1f1b24 100%) !important;
  border-bottom: 5px solid #141117 !important;
  border-right: 4px solid #1a171e !important;
  border-radius: 4px 4px 0 0 !important;
}
.biome-cimetiere .house-roof::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(0,0,0,0.4) 0px, rgba(0,0,0,0.4) 2px, transparent 2px, transparent 8px);
}

.biome-cimetiere .house-wall {
  background: linear-gradient(135deg, #443c4a 0%, #2f2933 100%) !important;
  border-bottom: 5px solid #1c181f !important;
  border-right: 4px solid #231f27 !important;
  border-left: 1px solid rgba(155, 89, 182, 0.15) !important;
}
.biome-cimetiere .house-wall::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(0,0,0,0.2) 8px, rgba(0,0,0,0.2) 9px);
}

.biome-cimetiere .house-window {
  background: linear-gradient(135deg, #b76eff 0%, #7b2cbf 100%) !important;
  border: 3px solid #231f27 !important;
  border-bottom: 5px solid #1c181f !important;
  border-radius: 3px !important;
  box-shadow: 0 0 10px rgba(155, 89, 182, 0.8) !important;
}

.biome-cimetiere .house-door {
  background: linear-gradient(180deg, #1c181f 0%, #0d0b0f 100%) !important;
  border: 2px solid #2c3e50 !important;
  border-bottom: 4px solid #1c181f !important;
  border-radius: 8px 8px 0 0 !important;
}
.biome-cimetiere .house-door::after {
  content: "";
  position: absolute;
  inset: 2px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 2px, #2c3e50 2px, #2c3e50 4px);
  opacity: 0.6;
}

/* Champ de blé (tile 9 / dungeon-exit) dans le village plaine */
.biome-plaine .tile.dungeon-exit {
  background: 
    repeating-linear-gradient(90deg, rgba(62, 39, 35, 0.35) 0px, rgba(62, 39, 35, 0.35) 3px, transparent 3px, transparent 8px),
    linear-gradient(180deg, #8d6e63 0%, #5d4037 100%) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #3e2723 !important;
  border-right: 3px solid #2e1c19 !important;
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.15),
    1px 3px 5px rgba(0, 0, 0, 0.35) !important;
  animation: none !important;
}

.biome-plaine .tile.dungeon-exit::after {
  content: "🌾" !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: none !important;
  background: none !important;
  opacity: 0.96 !important;
  animation: wheatSway 2s ease-in-out infinite alternate !important;
}

/* Champ d'orge (tile 9 / dungeon-exit) dans le biome foret */
.biome-foret .tile.dungeon-exit {
  background: 
    repeating-linear-gradient(90deg, rgba(62, 39, 35, 0.35) 0px, rgba(62, 39, 35, 0.35) 3px, transparent 3px, transparent 8px),
    linear-gradient(180deg, #7d5c4c 0%, #4e3629 100%) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #3e2723 !important;
  border-right: 3px solid #2e1c19 !important;
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.15),
    1px 3px 5px rgba(0, 0, 0, 0.35) !important;
  animation: none !important;
}

.biome-foret .tile.dungeon-exit::after {
  content: "🌾" !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: none !important;
  background: none !important;
  opacity: 0.96 !important;
  animation: wheatSway 2s ease-in-out infinite alternate !important;
}

/* Champ de houblon (tile 9 / dungeon-exit) dans le biome montagne */
.biome-montagne .tile.dungeon-exit {
  background: 
    repeating-linear-gradient(90deg, rgba(44, 62, 80, 0.25) 0px, rgba(44, 62, 80, 0.25) 3px, transparent 3px, transparent 8px),
    linear-gradient(180deg, #7f8c8d 0%, #2c3e50 100%) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #2c3e50 !important;
  border-right: 3px solid #1a252f !important;
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.15),
    1px 3px 5px rgba(0, 0, 0, 0.35) !important;
  animation: none !important;
}

.biome-montagne .tile.dungeon-exit::after {
  content: "🌿" !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: none !important;
  background: none !important;
  opacity: 0.96 !important;
  animation: wheatSway 2s ease-in-out infinite alternate !important;
}

/* Champ de riz (tile 9 / dungeon-exit) dans les autres biomes */
.biome-desert .tile.dungeon-exit,
.biome-neige .tile.dungeon-exit,
.biome-jungle .tile.dungeon-exit,
.biome-volcan .tile.dungeon-exit,
.biome-celeste .tile.dungeon-exit,
.biome-mer .tile.dungeon-exit,
.biome-minotor .tile.dungeon-exit,
.biome-cimetiere .tile.dungeon-exit,
.biome-dinosaures .tile.dungeon-exit,
.biome-noel .tile.dungeon-exit {
  background: 
    repeating-linear-gradient(90deg, rgba(139, 119, 86, 0.35) 0px, rgba(139, 119, 86, 0.35) 3px, transparent 3px, transparent 8px),
    linear-gradient(180deg, #d2b48c 0%, #8b5a2b 100%) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #8b5a2b !important;
  border-right: 3px solid #5c3a1c !important;
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.15),
    1px 3px 5px rgba(0, 0, 0, 0.35) !important;
  animation: none !important;
}

.biome-desert .tile.dungeon-exit::after,
.biome-neige .tile.dungeon-exit::after,
.biome-jungle .tile.dungeon-exit::after,
.biome-volcan .tile.dungeon-exit::after,
.biome-celeste .tile.dungeon-exit::after,
.biome-mer .tile.dungeon-exit::after,
.biome-minotor .tile.dungeon-exit::after,
.biome-cimetiere .tile.dungeon-exit::after,
.biome-dinosaures .tile.dungeon-exit::after,
.biome-noel .tile.dungeon-exit::after {
  content: "🌾" !important;
  font-size: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: none !important;
  background: none !important;
  opacity: 0.96 !important;
  animation: wheatSway 2s ease-in-out infinite alternate !important;
}

@keyframes wheatSway {
  0% { transform: rotate(-6deg); }
  100% { transform: rotate(6deg); }
}

/* Le Sphinx du Désert (tile 13) */
.tile.sphinx {
  background: radial-gradient(circle at 35% 35%, #fce093 0%, #d8b46a 55%, #8c6d30 100%) !important;
  border-radius: 8px !important;
  border-bottom: 4px solid #5d471b !important;
  border-right: 3px solid #705722 !important;
  box-shadow:
    inset 1px 1px 3px rgba(255, 255, 255, 0.4),
    0 4px 8px rgba(0, 0, 0, 0.45) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.tile.sphinx::after {
  content: "🦁" !important;
  font-size: 18px !important;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.6)) drop-shadow(0 0 4px rgba(216, 180, 106, 0.5));
}

/* Spot de Chasse (tile 14) */
.tile.hunting-spot {
  background: 
    radial-gradient(circle at 50% 50%, rgba(139, 69, 19, 0.12), transparent 70%),
    linear-gradient(180deg, #1e272c, #0f1418) !important;
  border-radius: 4px !important;
  border-bottom: 4px solid #080a0c !important;
  border-right: 3px solid #0b0e11 !important;
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.05),
    1px 3px 5px rgba(0, 0, 0, 0.45) !important;
}

.tile.hunting-spot::after {
  content: "🐾" !important;
  font-size: 15px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: none !important;
  background: none !important;
  opacity: 0.8 !important;
  animation: animalTracksSway 3s ease-in-out infinite alternate !important;
}

@keyframes animalTracksSway {
  0% { transform: scale(0.85) rotate(-6deg); }
  100% { transform: scale(1.05) rotate(6deg); }
}

/* ==========================================================================
   RESSOURCES ÉPUISÉES (DEPLETED RESOURCES)
   ========================================================================== */

/* Arbre coupé (Souche d'arbre / Tree stump) */
.tile.tree.depleted {
  background: radial-gradient(circle at 50% 50%, #8b5a2b 0%, #5c3a1a 100%) !important;
  border-radius: 4px !important;
  border-bottom: 3px solid #3d2511 !important;
  border-right: 2px solid #3d2511 !important;
  box-shadow: none !important;
  animation: none !important;
}

.tile.tree.depleted::after {
  content: "🪵" !important;
  font-size: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0.75 !important;
  animation: none !important;
  position: absolute !important;
  inset: 0 !important;
}

.tile.tree.depleted::before {
  display: none !important;
  content: "" !important;
}

/* Blé coupé (Champ fauché / Harvested wheat field) */
.biome-plaine .tile.dungeon-exit.depleted {
  background: 
    repeating-linear-gradient(90deg, transparent 0px, transparent 4px, rgba(139, 69, 19, 0.15) 4px, rgba(139, 69, 19, 0.15) 6px),
    linear-gradient(180deg, #3e2723, #1b0c07) !important;
  border-bottom: 4px solid #1b0c07 !important;
  border-right: 3px solid #1b0c07 !important;
  box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.5) !important;
  animation: none !important;
}

.biome-plaine .tile.dungeon-exit.depleted::after {
  content: "" !important;
  display: none !important;
}

.biome-plaine .tile.dungeon-exit.depleted::before {
  display: none !important;
  content: "" !important;
}

/* Eau épuisée (Poissons pêchés / Depleted water) */
.tile.water.depleted .water-bubble {
  display: none !important;
}

.tile.water.depleted {
  background: 
    linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, transparent 40%),
    linear-gradient(180deg, #1f4e5b, #0f2e37) !important;
  border-bottom: 3px solid #0b1a20 !important;
  border-right: 3px solid #0d2127 !important;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4) !important;
  animation: none !important;
}

.tile.water.depleted::after {
  content: "" !important;
  display: none !important;
}

.tile.water.depleted::before {
  display: none !important;
  content: "" !important;
}

/* Spot de chasse épuisé (Gibier chassé / Depleted hunting spot) */
.tile.hunting-spot.depleted::after {
  content: "" !important;
  display: none !important;
}

.tile.hunting-spot.depleted::before {
  display: none !important;
  content: "" !important;
}

/* ==========================================================================
   NEW DECORATIVE & INTERACTIVE WORLD TILES (TRANSPARENT BACKGROUNDS)
   ========================================================================== */

/* Puits / Well (18) */
.tile.well {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.well::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: radial-gradient(circle, #2e7ec0 30%, #5d4037 30%, #5d4037 40%, #7d6556 40%, #4e4a46 100%) !important;
  border-radius: 50% !important;
  border: 2px solid #332b24 !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.5), inset 0 0 3px rgba(0,0,0,0.8) !important;
}
.tile.well::before {
  content: "" !important;
  position: absolute !important;
  width: 100% !important;
  height: 4px !important;
  background: #5d4037 !important;
  top: calc(50% - 2px) !important;
  left: 0 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4) !important;
  z-index: 2 !important;
}

/* Rocher Décoratif / Decor Rock (19) */
.tile.decor-rock {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.decor-rock::after {
  content: "" !important;
  position: absolute !important;
  inset: 3px !important;
  background: linear-gradient(135deg, #b0bec5 0%, #78909c 50%, #455a64 100%) !important;
  border-radius: 60% 40% 60% 40% / 40% 60% 40% 60% !important;
  border-top: 2px solid #cfd8dc !important;
  border-left: 2px solid #b0bec5 !important;
  border-right: 2px solid #546e7a !important;
  border-bottom: 3px solid #263238 !important;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4) !important;
}

/* Barrière / Fence (20) */
.tile.fence {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.fence::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, transparent 20%, #8d6e63 20%, #8d6e63 30%, transparent 30%, transparent 70%, #8d6e63 70%, #8d6e63 80%, transparent 80%),
              linear-gradient(0deg, transparent 40%, #5d4037 40%, #5d4037 60%, transparent 60%) !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* Cabane / Hut (21) */
.tile.hut {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.hut::before {
  content: "" !important;
  position: absolute !important;
  top: 1px !important;
  left: 2px !important;
  width: 28px !important;
  height: 14px !important;
  background: linear-gradient(135deg, #ffe082 0%, #ffb300 100%) !important;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%) !important;
  z-index: 2 !important;
}
.tile.hut::after {
  content: "" !important;
  position: absolute !important;
  bottom: 2px !important;
  left: 5px !important;
  width: 22px !important;
  height: 16px !important;
  background: #8d6e63 !important;
  border-radius: 0 0 2px 2px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
  border-left: 2px solid #5d4037 !important;
  border-right: 2px solid #5d4037 !important;
  border-bottom: 2px solid #3e2723 !important;
}

/* Panneau indicateur / Signpost (22) */
.tile.signpost {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.signpost::before {
  content: "" !important;
  position: absolute !important;
  width: 4px !important;
  height: 22px !important;
  background: #5d4037 !important;
  bottom: 2px !important;
  left: calc(50% - 2px) !important;
}
.tile.signpost::after {
  content: "" !important;
  position: absolute !important;
  width: 22px !important;
  height: 10px !important;
  background: linear-gradient(135deg, #a1887f 0%, #8d6e63 100%) !important;
  border: 1px solid #4e342e !important;
  top: 6px !important;
  left: calc(50% - 11px) !important;
  border-radius: 1px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* Coffre / Chest (23) */
.tile.chest {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.chest::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: linear-gradient(135deg, #8d6e63 0%, #5d4037 100%) !important;
  border: 2px solid #ffd54f !important;
  border-radius: 4px !important;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.2) !important;
}
.tile.chest::before {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 6px !important;
  background: #ffd54f !important;
  border: 1px solid #ffb300 !important;
  border-radius: 50% !important;
  top: calc(50% - 3px) !important;
  left: calc(50% - 3px) !important;
  z-index: 2 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5) !important;
}

/* Herbe haute / Tall grass (24) */
.tile.tall-grass {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.tall-grass::after {
  content: "" !important;
  position: absolute !important;
  bottom: 2px !important;
  left: 4px !important;
  width: 24px !important;
  height: 24px !important;
  background: linear-gradient(75deg, #66bb6a 20%, transparent 20%),
              linear-gradient(-75deg, #4caf50 20%, transparent 20%),
              linear-gradient(85deg, #81c784 20%, transparent 20%) !important;
  background-size: 8px 24px, 8px 24px, 8px 24px !important;
  background-repeat: no-repeat !important;
  background-position: 0 0, 8px 0, 16px 0 !important;
}

/* Fleurs sauvages / Wild flowers (25) */
.tile.wild-flowers {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.wild-flowers::after {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 6px !important;
  background: #e91e63 !important;
  border-radius: 50% !important;
  box-shadow: 14px 4px 0 #ff4081, 4px 14px 0 #f50057, 14px 14px 0 #ff80ab !important;
  top: 4px;
  left: 4px;
}
.tile.wild-flowers::before {
  content: "" !important;
  position: absolute !important;
  width: 2px !important;
  height: 2px !important;
  background: #ffd54f !important;
  border-radius: 50% !important;
  box-shadow: 14px 4px 0 #ffd54f, 4px 14px 0 #ffd54f, 14px 14px 0 #ffd54f !important;
  top: 6px;
  left: 6px;
  z-index: 2 !important;
}

/* Feu de camp / Campfire (26) */
.tile.campfire {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.campfire::before {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: radial-gradient(circle at 50% 50%, #ff4500 10%, #d84315 30%, #4e342e 60%) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 10px rgba(255, 69, 0, 0.6) !important;
  animation: campfireGlow 1.5s ease-in-out infinite alternate !important;
}
.tile.campfire::after {
  content: "" !important;
  position: absolute !important;
  width: 12px !important;
  height: 16px !important;
  background: linear-gradient(0deg, #ff3d00 20%, #ffea00 100%) !important;
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40% !important;
  top: 6px;
  left: calc(50% - 6px);
  filter: drop-shadow(0 0 4px #ff3d00);
  animation: campfireBurn 1s ease-in-out infinite alternate !important;
}

/* Lanterne / Lightpost (27) */
.tile.lightpost {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.lightpost::before {
  content: "" !important;
  position: absolute !important;
  width: 2px !important;
  height: 24px !important;
  background: #263238 !important;
  bottom: 2px;
  left: calc(50% - 1px);
}
.tile.lightpost::after {
  content: "" !important;
  position: absolute !important;
  width: 8px !important;
  height: 8px !important;
  background: #ffeb3b !important;
  border: 1px solid #ff9800 !important;
  top: 4px;
  left: calc(50% - 5px);
  border-radius: 50% !important;
  box-shadow: 0 0 8px #ffeb3b !important;
}

/* Banc / Bench (28) */
.tile.bench {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.bench::before {
  content: "" !important;
  position: absolute !important;
  width: 26px !important;
  height: 6px !important;
  background: linear-gradient(180deg, #a1887f 0%, #8d6e63 100%) !important;
  border: 1px solid #4e342e !important;
  top: 12px;
  left: 3px;
  border-radius: 1px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}
.tile.bench::after {
  content: "" !important;
  position: absolute !important;
  width: 24px !important;
  height: 8px !important;
  border-left: 2px solid #37474f !important;
  border-right: 2px solid #37474f !important;
  top: 18px;
  left: 4px;
}

/* Tombe / Grave (29) */
.tile.grave {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.grave::after {
  content: "" !important;
  position: absolute !important;
  top: 4px !important;
  left: 6px !important;
  right: 6px !important;
  bottom: 2px !important;
  background: linear-gradient(180deg, #b0bec5 0%, #78909c 100%) !important;
  border-radius: 6px 6px 0 0 !important;
  border: 2px solid #455a64 !important;
  border-bottom: none !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.4) !important;
}
.tile.grave::before {
  content: "†" !important;
  position: absolute !important;
  top: 6px !important;
  width: 100% !important;
  text-align: center !important;
  color: #37474f !important;
  font-family: serif !important;
  font-size: 11px !important;
  font-weight: bold !important;
  z-index: 2 !important;
}

/* Statue (30) */
.tile.statue {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.statue::before {
  content: "" !important;
  position: absolute !important;
  bottom: 2px !important;
  left: 4px !important;
  width: 24px !important;
  height: 8px !important;
  background: #455a64 !important;
  border-radius: 2px !important;
  box-shadow: 0 2px 3px rgba(0,0,0,0.4) !important;
}
.tile.statue::after {
  content: "" !important;
  position: absolute !important;
  width: 12px !important;
  height: 12px !important;
  background: #cfd8dc !important;
  border: 2px solid #546e7a !important;
  border-radius: 50% !important;
  top: 6px !important;
  left: calc(50% - 8px) !important;
}

/* Tente / Tent (31) */
.tile.tent {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.tent::after {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  background: linear-gradient(135deg, #0288d1 0%, #01579b 100%) !important;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%) !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.3) !important;
}
.tile.tent::before {
  content: "" !important;
  position: absolute !important;
  bottom: 2px !important;
  left: calc(50% - 4px) !important;
  width: 8px !important;
  height: 10px !important;
  background: #004d40 !important;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%) !important;
  z-index: 2 !important;
}

/* Minerai / Ore Vein (32) */
.tile.ore-vein {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.ore-vein::after {
  content: "" !important;
  position: absolute !important;
  inset: 3px !important;
  background: radial-gradient(circle at 30% 30%, #ffd54f 20%, transparent 25%),
              radial-gradient(circle at 70% 60%, #ffd54f 15%, transparent 20%),
              linear-gradient(135deg, #546e7a 0%, #263238 100%) !important;
  border-radius: 6px !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.4) !important;
}

/* Botte de foin / Hay bale (33) */
.tile.hay-bale {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.hay-bale::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: linear-gradient(180deg, #ffeb3b 0%, #fbc02d 100%) !important;
  border: 1px solid #f57f17 !important;
  border-radius: 3px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}
.tile.hay-bale::before {
  content: "" !important;
  position: absolute !important;
  width: 24px !important;
  height: 2px !important;
  background: #8d6e63 !important;
  top: 10px !important;
  left: 4px !important;
  box-shadow: 0 10px 0 #8d6e63 !important;
  z-index: 2 !important;
}

/* Cactus (34) */
.tile.cactus {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.cactus::before {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 22px !important;
  background: linear-gradient(90deg, #4caf50 0%, #2e7d32 100%) !important;
  border-radius: 3px !important;
  left: calc(50% - 3px);
  bottom: 2px;
}
.tile.cactus::after {
  content: "" !important;
  position: absolute !important;
  width: 10px !important;
  height: 8px;
  border-left: 3px solid #2e7d32 !important;
  border-bottom: 3px solid #2e7d32 !important;
  border-radius: 0 0 0 3px !important;
  left: 5px;
  top: 8px;
}

/* Nénuphar / Lilypad (35) */
.tile.lilypad {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.lilypad::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #00897b !important;
  border-radius: 50% !important;
  clip-path: polygon(0 0, 80% 0, 50% 50%, 100% 30%, 100% 100%, 0 100%) !important;
  box-shadow: inset 0 0 3px rgba(0,0,0,0.3) !important;
}

/* Champignons / Mushrooms (36) */
.tile.mushrooms {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.mushrooms::before {
  content: "" !important;
  position: absolute !important;
  width: 8px !important;
  height: 8px !important;
  background: #e53935 !important;
  border-radius: 4px 4px 0 0 !important;
  top: 8px;
  left: 4px;
  box-shadow: 12px 6px 0 #d81b60 !important;
}
.tile.mushrooms::after {
  content: "" !important;
  position: absolute !important;
  width: 3px !important;
  height: 6px !important;
  background: #eceff1 !important;
  top: 15px;
  left: 6px;
  box-shadow: 12px 4px 0 #eceff1 !important;
}

/* Ossements / Skeleton (37) */
.tile.skeleton {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.skeleton::before {
  content: "" !important;
  position: absolute !important;
  width: 18px !important;
  height: 4px !important;
  background: #cfd8dc !important;
  transform: rotate(35deg) !important;
  top: 14px;
  left: 7px;
  border-radius: 2px !important;
}
.tile.skeleton::after {
  content: "" !important;
  position: absolute !important;
  width: 18px;
  height: 4px;
  background: #cfd8dc !important;
  transform: rotate(-35deg) !important;
  top: 14px;
  left: 7px;
  border-radius: 2px !important;
}

/* Tonneau / Barrel (38) */
.tile.barrel {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.barrel::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px 5px !important;
  background: linear-gradient(90deg, #5d4037 0%, #8d6e63 50%, #5d4037 100%) !important;
  border-radius: 4px !important;
  border-top: 1.5px solid #3e2723 !important;
  border-bottom: 1.5px solid #3e2723 !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.4) !important;
}
.tile.barrel::before {
  content: "" !important;
  position: absolute !important;
  width: 22px !important;
  height: 2px !important;
  background: #78909c !important;
  top: 8px;
  left: 5px;
  box-shadow: 0 12px 0 #78909c !important;
  z-index: 2 !important;
}

/* Caisse / Crate (39) */
.tile.crate {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.crate::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #a1887f !important;
  border: 2px solid #5d4037 !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.4) !important;
}
.tile.crate::before {
  content: "" !important;
  position: absolute !important;
  width: 18px;
  height: 2px;
  background: #5d4037 !important;
  top: calc(50% - 1px);
  left: 7px;
  transform: rotate(45deg) !important;
  box-shadow: 0 0 0 1px #5d4037 !important;
  z-index: 2 !important;
}

/* Ruines / Ruins (40) */
.tile.ruins {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.ruins::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #78909c !important;
  border: 2px solid #455a64 !important;
  border-bottom: 3px solid #263238 !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.3) !important;
}
.tile.ruins::before {
  content: "" !important;
  position: absolute !important;
  width: 4px;
  height: 14px;
  background: #37474f !important;
  left: 8px;
  top: 8px;
  box-shadow: 12px 0 0 #37474f !important;
  z-index: 2 !important;
}

/* Sac / Sack (41) */
.tile.sack {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.sack::before {
  content: "" !important;
  position: absolute !important;
  width: 18px;
  height: 18px;
  background: #d7ccc8 !important;
  border-radius: 50% 50% 40% 40% !important;
  bottom: 2px;
  left: calc(50% - 9px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
  border: 1px solid #bcaaa4 !important;
}
.tile.sack::after {
  content: "" !important;
  position: absolute !important;
  width: 6px;
  height: 4px;
  background: #8d6e63 !important;
  bottom: 18px;
  left: calc(50% - 3px);
  border-radius: 2px !important;
}

/* Épave / Shipwreck (42) */
.tile.shipwreck {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.shipwreck::before {
  content: "" !important;
  position: absolute !important;
  width: 4px !important;
  height: 20px;
  background: #78909c !important;
  top: 4px;
  left: calc(50% - 2px);
}
.tile.shipwreck::after {
  content: "" !important;
  position: absolute !important;
  width: 18px;
  height: 10px;
  border-bottom: 4px solid #78909c !important;
  border-left: 4px solid #78909c !important;
  border-right: 4px solid #78909c !important;
  border-radius: 0 0 8px 8px !important;
  top: 12px;
  left: calc(50% - 9px);
}

/* Toile Araignée / Spiderweb (43) */
.tile.spiderweb {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.spiderweb::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(circle at center, transparent 10%, rgba(207, 216, 220, 0.4) 15%, transparent 20%, rgba(207, 216, 220, 0.4) 35%, transparent 40%, rgba(207, 216, 220, 0.4) 55%, transparent 60%) !important;
}

/* Flaque Sang / Blood Pool (44) */
.tile.blood-pool {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.blood-pool::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: radial-gradient(circle at 50% 50%, rgba(211, 47, 47, 0.6) 0%, rgba(183, 28, 28, 0.8) 40%, transparent 70%) !important;
}

/* Cristaux Magiques / Crystals (45) */
.tile.crystals {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.crystals::after {
  content: "" !important;
  position: absolute !important;
  width: 14px;
  height: 24px;
  background: linear-gradient(135deg, #e040fb 0%, #6a1b9a 100%) !important;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%) !important;
  top: 4px;
  left: calc(50% - 7px);
  box-shadow: 0 0 8px #e040fb !important;
  animation: crystalGlow 1.5s ease-in-out infinite alternate !important;
}

/* Magic Statue (46) */
.tile.magic-statue {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.magic-statue::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #311b92 !important;
  border-radius: 4px !important;
  border: 2px solid #b388ff !important;
  box-shadow: 0 0 8px #b388ff !important;
}
.tile.magic-statue::before {
  content: "" !important;
  position: absolute !important;
  width: 8px;
  height: 8px;
  background: #00e5ff !important;
  border-radius: 50% !important;
  top: calc(50% - 4px);
  left: calc(50% - 4px);
  z-index: 2 !important;
  box-shadow: 0 0 4px #00e5ff !important;
}

/* Bedroll (47) */
.tile.bedroll {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.bedroll::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #bcaaa4 !important;
  border-radius: 3px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}
.tile.bedroll::before {
  content: "" !important;
  position: absolute !important;
  width: 6px;
  height: 24px;
  background: #8d6e63 !important;
  left: 4px;
  top: 4px;
  border-radius: 3px 0 0 3px !important;
  z-index: 2 !important;
}

/* Spring / Trampoline (48) */
.tile.spring {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.spring::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: radial-gradient(circle, #eceff1 20%, #78909c 30%, transparent 35%, #78909c 45%, transparent 50%, #78909c 60%, #455a64 70%) !important;
  border-radius: 50% !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* Autumn Leaves (49) */
.tile.autumn-leaves {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.autumn-leaves::after {
  content: "" !important;
  position: absolute !important;
  width: 6px;
  height: 6px;
  background: #ff5722 !important;
  border-radius: 3px 0 3px 0 !important;
  top: 8px;
  left: 8px;
  box-shadow: 8px 6px 0 #ff9800, -4px 10px 0 #e64a19, 4px -4px 0 #f57c00 !important;
}

/* Footprints (50) */
.tile.footprints {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.footprints::after {
  content: "" !important;
  position: absolute !important;
  width: 3px;
  height: 5px;
  background: rgba(0,0,0,0.15) !important;
  border-radius: 50% !important;
  top: 8px;
  left: 10px;
  box-shadow: 6px 8px 0 rgba(0,0,0,0.15) !important;
}

/* Ice Patch (51) */
.tile.ice-patch {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.ice-patch::after {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  background: rgba(179, 229, 252, 0.6) !important;
  border-radius: 4px !important;
  box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.9) !important;
}

/* Mud Puddle (52) */
.tile.mud-puddle {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.mud-puddle::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: radial-gradient(circle at center, rgba(141, 110, 99, 0.8) 0%, transparent 80%) !important;
}

/* Tent Wall (53) */
.tile.tent-wall {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.tent-wall::after {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  background: #0288d1 !important;
  border: 2px solid #01579b !important;
  box-shadow: inset 0 3px 0 rgba(255,255,255,0.2) !important;
}

/* Scaffolding (54) */
.tile.scaffolding {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.scaffolding::after {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  background: linear-gradient(90deg, #5d4037 10%, transparent 10%, transparent 90%, #5d4037 90%),
              linear-gradient(0deg, #5d4037 10%, transparent 10%, transparent 90%, #5d4037 90%) !important;
}
.tile.scaffolding::before {
  content: "" !important;
  position: absolute !important;
  width: 100% !important;
  height: 2px !important;
  background: #5d4037 !important;
  top: calc(50% - 1px) !important;
  left: 0 !important;
}

/* Cactus Fleuri (55) */
.tile.cactus-flowered {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.cactus-flowered::before {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 22px !important;
  background: linear-gradient(90deg, #4caf50 0%, #2e7d32 100%) !important;
  border-radius: 3px !important;
  left: calc(50% - 3px);
  bottom: 2px;
}
.tile.cactus-flowered::after {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 6px !important;
  background: #e91e63 !important;
  border-radius: 50% !important;
  top: 0;
  left: calc(50% - 3px);
  box-shadow: 0 0 4px #e91e63 !important;
}

/* Glowing Flower (56) */
.tile.glowing-flower {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.glowing-flower::before {
  content: "" !important;
  position: absolute !important;
  width: 10px !important;
  height: 10px !important;
  background: #00e5ff !important;
  border-radius: 50% !important;
  top: calc(50% - 5px);
  left: calc(50% - 5px);
  animation: glowFlower 1.2s ease-in-out infinite alternate !important;
}

/* Giant Skull (57) */
.tile.giant-skull {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.giant-skull::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: #eceff1 !important;
  border-radius: 50% 50% 30% 30% !important;
  border: 2px solid #cfd8dc !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.3) !important;
}
.tile.giant-skull::before {
  content: "" !important;
  position: absolute !important;
  width: 4px !important;
  height: 6px !important;
  background: #37474f !important;
  border-radius: 50% !important;
  top: 12px;
  left: 9px;
  box-shadow: 10px 0 0 #37474f !important;
  z-index: 2 !important;
}

/* Giant Bone (58) */
.tile.giant-bone {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.giant-bone::before {
  content: "" !important;
  position: absolute !important;
  width: 24px !important;
  height: 6px !important;
  background: #eceff1 !important;
  top: calc(50% - 3px);
  left: 4px;
  border-radius: 2px !important;
}
.tile.giant-bone::after {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 12px !important;
  background: #eceff1 !important;
  border-radius: 3px !important;
  top: calc(50% - 6px);
  left: 2px;
  box-shadow: 24px 0 0 #eceff1 !important;
}

/* Ruined Grave (59) */
.tile.ruined-grave {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.ruined-grave::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: linear-gradient(135deg, #78909c 0%, #37474f 100%) !important;
  border-radius: 4px 0 0 0 !important;
  border: 2px solid #263238 !important;
  box-shadow: 0 3px 5px rgba(0,0,0,0.4) !important;
}

/* Altar (60) */
.tile.altar {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tile.altar::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  background: linear-gradient(180deg, #37474f 0%, #212121 100%) !important;
  border: 2px solid #546e7a !important;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5) !important;
}
.tile.altar::before {
  content: "" !important;
  position: absolute !important;
  width: 4px !important;
  height: 8px !important;
  background: #ffffff !important;
  top: 8px;
  left: calc(50% - 2px);
  z-index: 2 !important;
}
