/* ===== Escala la Montaña ===== */
.mg-climb .mg-field { overflow: hidden; }
.cl-wall { position: absolute; left: 520px; width: 960px; top: 0; bottom: 0; border-left: 8px solid #3a3a44; border-right: 8px solid #3a3a44;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.07) 0 40px, transparent 41px) 0 0 / 220px 260px,
    radial-gradient(circle at 70% 70%, rgba(0,0,0,.12) 0 60px, transparent 61px) 0 0 / 300px 340px,
    linear-gradient(90deg, rgba(60,56,66,.92), rgba(110,104,112,.9) 30%, rgba(96,90,100,.9) 70%, rgba(54,50,60,.92));
  box-shadow: 0 0 60px rgba(0,0,0,.5); }
.cl-world { position: absolute; inset: 0; transition: transform .25s ease-out; }
.cl-hold { position: absolute; width: 104px; height: 80px; cursor: pointer; background: url(../assets/rescue/rock.png) center / contain no-repeat;
  filter: drop-shadow(0 5px 3px rgba(0,0,0,.45)); transition: transform .12s; }
.cl-hold:hover { transform: scale(1.08); }
.cl-hold.gold { filter: sepia(1) saturate(5) hue-rotate(-12deg) brightness(1.25) drop-shadow(0 0 12px rgba(255,210,60,.95)); animation: clGold 1.4s ease-in-out infinite; }
.cl-hold.gold.used, .cl-hold.chalk.used { filter: grayscale(.6) drop-shadow(0 5px 3px rgba(0,0,0,.45)); animation: none; }
.cl-hold.chalk span { position: absolute; left: 50%; top: -20px; transform: translateX(-50%); font-size: 40px; filter: drop-shadow(0 0 6px #fff); }
.cl-hold.chalk.used span { display: none; }
.cl-hold.crack::after { content: ''; position: absolute; inset: 8px 18px; background: url(../assets/rescue/crack1.png) center / contain no-repeat; opacity: .9; }
.cl-hold.shaking { animation: clShake .18s linear infinite; }
.cl-hold.broken { opacity: 0; transform: translateY(80px) rotate(30deg); transition: opacity .5s, transform .5s; pointer-events: none; }
.cl-hold.ledge, .cl-hold.top { height: 46px; margin-top: 30px; background: linear-gradient(#ffffff, #dbe8f4 40%, #8a8a94 42%, #5a5a66); border-radius: 22px 22px 12px 12px; border: 4px solid #2e2e38; }
.cl-hold.top { background: linear-gradient(#ffffff, #e6f2ff 45%, #b08a5a 47%, #6a4a2a); }
.cl-flag { position: absolute; left: 50%; top: -86px; transform: translateX(-50%); font-size: 80px; animation: clFlag 1.2s ease-in-out infinite alternate; }
@keyframes clGold { 50% { transform: scale(1.1); } }
@keyframes clShake { 0%, 100% { translate: 0 0; } 25% { translate: -4px 1px; } 75% { translate: 4px -1px; } }
@keyframes clFlag { to { transform: translateX(-50%) rotate(-8deg); } }
.cl-bear { position: absolute; width: 170px; height: 256px; pointer-events: none; transition: left .18s ease-out, top .18s ease-out; z-index: 5; }
.cl-bear svg { width: 100%; height: 100%; overflow: visible; }
.cl-bear .shadow { display: none; }
.cl-bear.reach { animation: clReach .25s ease-out; }
.cl-bear.hurt { animation: clHurt .6s ease-out; }
@keyframes clReach { 40% { transform: translateY(-14px) scaleY(1.06); } }
@keyframes clHurt { 0%, 100% { filter: none; } 30% { filter: brightness(1.8) sepia(1) hue-rotate(-40deg) saturate(4); transform: translateY(24px); } }
.cl-rock { position: absolute; width: 100px; height: 78px; top: 120px; z-index: 6; pointer-events: none; }
.cl-rock.fall { background: url(../assets/rescue/rock.png) center / contain no-repeat; filter: drop-shadow(0 8px 6px rgba(0,0,0,.5)); animation: clSpin .5s linear infinite; }
.cl-warn { position: absolute; left: 50%; top: 0; transform: translateX(-50%); font-size: 56px; animation: clWarn .3s ease-in-out infinite alternate; }
.cl-rock.fall .cl-warn { display: none; }
@keyframes clSpin { to { rotate: 360deg; } }
@keyframes clWarn { to { transform: translateX(-50%) scale(1.25); } }
.cl-energy { min-width: 230px; }
.cl-ebar { display: inline-block; width: 160px; height: 18px; margin-left: 6px; border-radius: 9px; vertical-align: middle; background: rgba(0,0,0,.35); overflow: hidden; }
.cl-ebar i { display: block; height: 100%; border-radius: 9px; background: linear-gradient(90deg, #3fae3b, #b8f070); transition: width .2s; }
.cl-energy.low .cl-ebar i { background: linear-gradient(90deg, #e2363b, #ff9a5a); animation: clWarn .3s ease-in-out infinite alternate; }
/* hielo, viento, águilas y combo */
.cl-hold.ice { filter: hue-rotate(160deg) saturate(.6) brightness(1.45) drop-shadow(0 0 10px rgba(160,230,255,.9)); }
.cl-hold.ice::before { content: '❄'; position: absolute; left: 50%; top: -6px; transform: translateX(-50%); font-size: 30px; color: #e8f8ff; text-shadow: 0 0 6px #7ac8f0; }
.cl-hold.ice.slip { animation: clShake .12s linear infinite; }
.mg-climb .mg-field.cl-windy .cl-wall { animation: clWind .35s ease-in-out infinite alternate; }
.mg-climb .mg-field.cl-windy::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 7;
  background: repeating-linear-gradient(100deg, transparent 0 140px, rgba(255,255,255,.18) 140px 146px, transparent 146px 300px); animation: clGustLines .5s linear infinite; }
@keyframes clWind { to { transform: translateX(10px); } }
@keyframes clGustLines { to { transform: translateX(-300px); } }
.cl-eagle { position: absolute; width: 120px; height: 100px; z-index: 6; pointer-events: none; font-size: 84px; }
.cl-eagle .cl-ebird { display: none; }
.cl-eagle.warn .cl-ewarn { display: block; font-size: 52px; animation: clWarn .3s ease-in-out infinite alternate; }
.cl-eagle.fly .cl-ewarn { display: none; }
.cl-eagle.fly .cl-ebird { display: block; transform: scaleX(-1); }
.cl-eagle.rtl.fly .cl-ebird { transform: none; }
.cl-combo { background: linear-gradient(#fff36a, #ffb020) !important; color: #5a3a00 !important; }
.cl-gust { background: linear-gradient(#e6f6ff, #9ad0ff) !important; color: #1a3a6a !important; }
.mg-climb .cl-levels { margin: 14px 0 6px; }
.mg-climb .cl-levels .diff { width: 200px; padding: 14px 10px; }
.mg-climb .cl-levels .diff b { font-size: 32px; }
.mg-climb .cl-levels .diff small { font-size: 18px; }
