/*
    Archivo: style.css
    Ruta: /assets/css/style.css
    Versión: 4.7.0
    Fecha de modificación: 2026-05-29 20:45 hrs.
    Descripción: Estilos KIMUS con fondo compacto, capas livianas y árboles por encima de bloques e ítems.
*/
:root{
    --map-size:23;
    --bg:#04070d;
    --panel:#0d1626;
    --panel2:#111b2b;
    --text:#eef8ef;
    --muted:#9fb3a8;
    --accent:#76ff9b;
    --accent2:#77cbff;
    --danger:#ff6878;
    --line:rgba(255,255,255,.12);
    --shadow:rgba(0,0,0,.45);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:"Courier New",monospace;overflow:hidden;touch-action:manipulation}
body{min-height:100dvh}
button,input,select,textarea{font-family:inherit;font-weight:700}
button{border:2px solid var(--accent);background:#07111d;color:var(--accent);border-radius:14px;padding:10px 12px;cursor:pointer;box-shadow:none}
button:active{transform:scale(.96)}
input,select,textarea{width:100%;border:2px solid #33445c;background:#07111d;color:var(--text);border-radius:12px;padding:10px 12px;margin:6px 0 12px;outline:none}
textarea{min-height:92px;resize:vertical}
label{display:block;color:var(--muted);font-size:13px;margin-top:8px}
.game-shell{position:relative;width:100vw;height:100dvh;background:radial-gradient(circle at top,#17253b 0,#07111f 42%,#03060b 100%);overflow:hidden}
.world-stage{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at top,#17253b 0,#07111f 58%,#03060b 100%)}
.top-hud{position:absolute;top:calc(8px + env(safe-area-inset-top));left:8px;right:104px;z-index:9;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:start;pointer-events:none}
.hud-pill{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(7,13,25,.78);border:2px solid rgba(119,255,155,.48);border-radius:999px;padding:8px 12px;color:var(--text);font-size:13px;line-height:1.2;backdrop-filter:blur(5px)}
#playerBadge{color:var(--muted)}
.top-life,.top-money{display:inline-block;width:86px;height:9px;margin-left:8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;vertical-align:middle;background:rgba(255,0,0,.18);overflow:hidden}.top-life span,.top-money span{display:block;height:100%;width:100%;transition:width .18s ease}.top-life span{background:linear-gradient(90deg,#ff4d6d,#ffe66d,#77ff9b)}.top-money{background:rgba(255,230,109,.12)}.top-money span{background:linear-gradient(90deg,#b7791f,#ffe66d)}.player-pill small{font-size:10px;color:#eafff5;margin-left:4px}
.hud-actions{position:fixed;right:8px;top:calc(8px + env(safe-area-inset-top));display:flex;align-items:center;gap:8px;pointer-events:auto;z-index:11}
.hud-menu,.hud-chat,.hud-inventory,.hud-reload,.hud-map{position:relative;border-radius:999px;width:56px;height:56px;padding:0;font-size:25px;background:rgba(7,20,13,.9)}
.hud-chat{border-color:rgba(114,198,255,.8);color:#d9f6ff;background:rgba(7,17,31,.9)}.hud-inventory{border-color:rgba(255,230,109,.85);color:#ffe66d;background:rgba(34,25,7,.92)}
.badge-dot{position:absolute;right:-5px;top:-5px;min-width:20px;height:20px;padding:0 4px;border-radius:999px;background:#ff6b7a;color:#fff;border:2px solid #0b1020;font-size:10px;line-height:16px;text-align:center}
.world-grid{position:absolute;left:0;right:0;top:114px;bottom:188px;margin:auto;width:min(100vw,calc(100dvh - 310px));height:min(100vw,calc(100dvh - 310px));display:grid;grid-template-columns:repeat(var(--map-size),minmax(0,1fr));grid-template-rows:repeat(var(--map-size),minmax(0,1fr));gap:0;background:transparent;border:4px solid rgba(15,30,54,.95);border-radius:0;padding:0;box-shadow:0 14px 30px var(--shadow);contain:layout paint size}
.tile{position:relative;display:block;min-width:0;min-height:0;aspect-ratio:1/1;border-radius:0;font-size:clamp(13px,3.9vw,26px);line-height:1;overflow:visible;border:0;box-shadow:none;user-select:none;contain:layout style;background:var(--floor,#4fa237)}
.tile.has-player{z-index:180}.tile.has-other{z-index:140}.tile.has-landmark{z-index:150}.tile.has-door{z-index:155}.tile.has-vehicle{z-index:135}.tile.has-bomb,.tile.has-flame{z-index:160}.tile.has-home{z-index:95}.tile.has-ambient,.tile.has-animal{z-index:80}.tile.has-decor,.tile.has-item{z-index:70}.floor{position:absolute;inset:0;z-index:0;background:var(--floor,#4fa237);pointer-events:none}
.sprite{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;line-height:1;font-size:clamp(14px,4.1vw,26px);pointer-events:none;will-change:transform,filter;text-shadow:0 2px 2px rgba(0,0,0,.34)}
.sprite.player{z-index:180;font-size:clamp(18px,5vw,34px);filter:drop-shadow(0 7px 4px rgba(0,0,0,.42))}.sprite.other{z-index:120}.sprite.target{outline:2px solid #ffe66d;border-radius:999px}.sprite.home{z-index:90}.sprite.item{z-index:62;animation:itemPulse 1.8s infinite}.sprite.animal{z-index:72;font-size:clamp(28px,8.2vw,52px);width:200%;height:200%;left:-50%;top:-75%;animation:animalWander 5.8s ease-in-out infinite}.sprite.animal-wander{animation:animalWander 6.8s ease-in-out infinite}.sprite.aquatic{animation:aquaticWander 6s ease-in-out infinite}.sprite.in-tree{animation:treePeek 2.7s infinite}.sprite.decor{z-index:50;font-size:clamp(28px,8.2vw,52px);width:200%;height:200%;left:-50%;top:-80%}.sprite.decor-flower,.sprite.decor-mushroom,.sprite.zoo-plant{font-size:clamp(20px,5.6vw,34px);width:130%;height:130%;left:-15%;top:-30%}.sprite.big-scenery{font-size:clamp(30px,8.8vw,58px)}.sprite.landmark-giant{z-index:150;font-size:clamp(42px,12vw,96px);transform:scale(1.18);filter:drop-shadow(0 14px 9px rgba(0,0,0,.5));animation:none}.sprite.door{z-index:155;font-size:clamp(18px,5vw,34px);filter:drop-shadow(0 4px 3px rgba(0,0,0,.42))}.sprite.zoo-plant{opacity:.96}.sprite.casino-glow{filter:drop-shadow(0 0 8px rgba(255,231,118,.35))}.sprite.vehicle{z-index:135;font-size:clamp(19px,5.2vw,36px);filter:drop-shadow(0 8px 5px rgba(0,0,0,.42))}.sprite.vehicle-player{z-index:185;font-size:clamp(21px,5.6vw,38px);animation:vehicleIdle .8s ease-in-out infinite;--vehicle-rot:0deg;--vehicle-flip:1}.sprite.vehicle-player.vehicle-dir-left{--vehicle-rot:0deg;--vehicle-flip:1}.sprite.vehicle-player.vehicle-dir-right{--vehicle-rot:0deg;--vehicle-flip:-1}.sprite.vehicle-player.vehicle-dir-up{--vehicle-rot:90deg;--vehicle-flip:1}.sprite.vehicle-player.vehicle-dir-down{--vehicle-rot:-90deg;--vehicle-flip:1}.sprite.bomb{z-index:165;font-size:clamp(18px,5vw,34px);animation:bombTick .55s infinite;text-shadow:0 0 10px rgba(255,70,70,.8)}.sprite.flame{z-index:166;font-size:clamp(20px,5.6vw,38px);animation:flameBurst .42s infinite alternate;filter:drop-shadow(0 0 10px rgba(255,120,0,.85))}.sprite.projectile{z-index:170;color:#ffe66d;font-size:clamp(9px,2.8vw,16px);filter:drop-shadow(0 0 7px rgba(255,230,109,.95));animation:bulletStep .09s linear both}.sprite.placed-block{z-index:100;font-size:clamp(17px,4.8vw,31px);filter:drop-shadow(0 5px 3px rgba(0,0,0,.4))}.sprite.aim{z-index:175;color:#ffeb70;font-size:clamp(17px,4.8vw,32px);text-shadow:0 0 8px rgba(255,235,112,.9);animation:aimPulse .75s infinite alternate}.sprite.animal-free{animation:animalFreeRoam 3.8s ease-in-out infinite}
.floater{position:absolute;left:50%;top:8%;z-index:220;transform:translate(-50%,0);font-size:clamp(10px,3.2vw,18px);font-weight:900;color:#eafff5;text-shadow:0 2px 3px rgba(0,0,0,.8);pointer-events:none;animation:floatUp .9s ease-out forwards}.floater-heal{color:#84ff91}.floater-damage{color:#ff6878}.floater-pet{color:#ffe66d}
.sprite.player-walking{animation:playerStep .10s cubic-bezier(.2,.8,.18,1) forwards}
@keyframes bulletStep{0%{transform:scale(.7);opacity:.6}100%{transform:scale(1.25);opacity:1}}
@keyframes floatUp{0%{opacity:0;transform:translate(-50%,8px) scale(.85)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-24px) scale(1.12)}}
@keyframes playerStep{0%{transform:translate(0,0) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1)}45%{transform:translate(calc(var(--walk-x) * .56), calc(var(--walk-y) * .56)) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1.05)}100%{transform:translate(var(--walk-x), var(--walk-y)) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1)}}
@keyframes aimPulse{from{transform:scale(.82);opacity:.65}to{transform:scale(1.12);opacity:1}}
@keyframes vehicleIdle{0%,100%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(0) scale(1)}50%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(-2px) scale(1.04)}}
@keyframes bombTick{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes flameBurst{0%{transform:scale(.82) rotate(-4deg);opacity:.82}100%{transform:scale(1.22) rotate(5deg);opacity:1}}
@keyframes animalFreeRoam{0%,100%{transform:translate(0,0) rotateY(0deg)}25%{transform:translate(12%,0) rotateY(25deg)}50%{transform:translate(10%,-8%) rotateY(180deg)}75%{transform:translate(-10%,4%) rotateY(300deg)}}
@keyframes animalWander{0%,100%{transform:translate(0,0) rotateY(0deg)}25%{transform:translate(12%,-8%) rotateY(0deg)}50%{transform:translate(-10%,6%) rotateY(180deg)}75%{transform:translate(8%,10%) rotateY(180deg)}}
@keyframes aquaticWander{0%,100%{transform:translate(0,0) rotateY(0deg)}50%{transform:translate(16%,0) rotateY(180deg)}}
@keyframes treePeek{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-9%) scale(1.06)}}
@keyframes itemPulse{50%{filter:brightness(1.22) drop-shadow(0 0 7px rgba(255,255,255,.24))}}
.tile.terrain-bosque.terrain-grass,.mini-cell.terrain-bosque.terrain-grass{--floor:#4fa237}.tile.terrain-bosque.terrain-water,.mini-cell.terrain-bosque.terrain-water{--floor:#2477bd}.tile.terrain-bosque.terrain-limit,.mini-cell.terrain-bosque.terrain-limit{--floor:#20242a}
.tile.terrain-jungla.terrain-grass,.mini-cell.terrain-jungla.terrain-grass{--floor:#247433}.tile.terrain-jungla.terrain-water,.mini-cell.terrain-jungla.terrain-water{--floor:#1d6371}.tile.terrain-jungla.terrain-limit,.mini-cell.terrain-jungla.terrain-limit{--floor:#20242a}
.tile.terrain-playa.terrain-sand,.mini-cell.terrain-playa.terrain-sand{--floor:#d5b86f}.tile.terrain-playa.terrain-water,.mini-cell.terrain-playa.terrain-water{--floor:#147fc8}.tile.terrain-playa.terrain-limit,.mini-cell.terrain-playa.terrain-limit{--floor:#20242a}
.tile.terrain-espacio.terrain-space,.mini-cell.terrain-espacio.terrain-space{--floor:#11162c}.tile.terrain-espacio.terrain-limit,.mini-cell.terrain-espacio.terrain-limit{--floor:#03050b}
.tile.terrain-egipto.terrain-sand,.mini-cell.terrain-egipto.terrain-sand{--floor:#cfae68}.tile.terrain-egipto.terrain-limit,.mini-cell.terrain-egipto.terrain-limit{--floor:#20242a}
/* Pisos turísticos y capas de terreno */
.tile.terrain-bosque.terrain-path,.mini-cell.terrain-bosque.terrain-path{--floor:#7c6a43}.tile.terrain-bosque.terrain-wall,.mini-cell.terrain-bosque.terrain-wall{--floor:#68655d}.tile.terrain-bosque.terrain-building,.mini-cell.terrain-bosque.terrain-building{--floor:#68655d}
.tile.terrain-jungla.terrain-path,.mini-cell.terrain-jungla.terrain-path{--floor:#6c5c2e}.tile.terrain-jungla.terrain-wall,.mini-cell.terrain-jungla.terrain-wall{--floor:#5d6450}.tile.terrain-jungla.terrain-building,.mini-cell.terrain-jungla.terrain-building{--floor:#5d6450}
.tile.terrain-playa.terrain-path,.mini-cell.terrain-playa.terrain-path{--floor:#b68f54}.tile.terrain-playa.terrain-dock,.mini-cell.terrain-playa.terrain-dock{--floor:#7d4f2f}.tile.terrain-playa.terrain-shore,.mini-cell.terrain-playa.terrain-shore{--floor:#ead88d}.tile.terrain-playa.terrain-building,.mini-cell.terrain-playa.terrain-building{--floor:#c27f54}
.tile.terrain-espacio.terrain-platform,.mini-cell.terrain-espacio.terrain-platform{--floor:#313b57}.tile.terrain-espacio.terrain-wall,.mini-cell.terrain-espacio.terrain-wall{--floor:#596579}.tile.terrain-espacio.terrain-building,.mini-cell.terrain-espacio.terrain-building{--floor:#596579}
.tile.terrain-egipto.terrain-path,.mini-cell.terrain-egipto.terrain-path{--floor:#a98c4f}.tile.terrain-egipto.terrain-wall,.mini-cell.terrain-egipto.terrain-wall{--floor:#9d854d}.tile.terrain-egipto.terrain-building,.mini-cell.terrain-egipto.terrain-building{--floor:#b08f45}

.tile.terrain-zoologico.terrain-zoo,.mini-cell.terrain-zoologico.terrain-zoo{--floor:#58a94b}.tile.terrain-zoologico.terrain-path,.mini-cell.terrain-zoologico.terrain-path{--floor:#9b8354}.tile.terrain-zoologico.terrain-fence,.mini-cell.terrain-zoologico.terrain-fence{--floor:#7b6441}.tile.terrain-zoologico.terrain-habitat,.mini-cell.terrain-zoologico.terrain-habitat{--floor:#6faa4c}.tile.terrain-zoologico.terrain-limit,.mini-cell.terrain-zoologico.terrain-limit{--floor:#20242a}
.tile.terrain-cementerio.terrain-cemetery,.mini-cell.terrain-cementerio.terrain-cemetery{--floor:#223024}.tile.terrain-cementerio.terrain-path,.mini-cell.terrain-cementerio.terrain-path{--floor:#3e3a34}.tile.terrain-cementerio.terrain-grave,.mini-cell.terrain-cementerio.terrain-grave{--floor:#2a332d}.tile.terrain-cementerio.terrain-limit,.mini-cell.terrain-cementerio.terrain-limit{--floor:#070a0d}.tile.terrain-cementerio.terrain-revive,.mini-cell.terrain-cementerio.terrain-revive{--floor:#3e3a34}
.tile.terrain-casino.terrain-casino,.mini-cell.terrain-casino.terrain-casino{--floor:#321a3f}.tile.terrain-casino.terrain-path,.mini-cell.terrain-casino.terrain-path{--floor:#51315f}.tile.terrain-casino.terrain-dance,.mini-cell.terrain-casino.terrain-dance{--floor:#273f8f}.tile.terrain-casino.terrain-bar,.mini-cell.terrain-casino.terrain-bar{--floor:#70421f}.tile.terrain-casino.terrain-games,.mini-cell.terrain-casino.terrain-games{--floor:#263f2d}.tile.terrain-casino.terrain-wall,.mini-cell.terrain-casino.terrain-wall{--floor:#1d1524}.tile.terrain-casino.terrain-building,.mini-cell.terrain-casino.terrain-building{--floor:#2d2435}.tile.terrain-casino.terrain-limit,.mini-cell.terrain-casino.terrain-limit{--floor:#08030d}
.tile.terrain-castillo.terrain-indoor,.mini-cell.terrain-castillo.terrain-indoor{--floor:#4f5362}.tile.terrain-castillo.terrain-wall,.mini-cell.terrain-castillo.terrain-wall{--floor:#2f3440}.tile.terrain-castillo.terrain-limit,.mini-cell.terrain-castillo.terrain-limit{--floor:#111827}
.tile.terrain-templo.terrain-indoor,.mini-cell.terrain-templo.terrain-indoor{--floor:#5b6543}.tile.terrain-templo.terrain-wall,.mini-cell.terrain-templo.terrain-wall{--floor:#374126}.tile.terrain-templo.terrain-limit,.mini-cell.terrain-templo.terrain-limit{--floor:#111827}
.tile.terrain-resort.terrain-indoor,.mini-cell.terrain-resort.terrain-indoor{--floor:#b99066}.tile.terrain-resort.terrain-wall,.mini-cell.terrain-resort.terrain-wall{--floor:#6d5b52}.tile.terrain-resort.terrain-limit,.mini-cell.terrain-resort.terrain-limit{--floor:#111827}
.tile.terrain-estacion.terrain-spacefloor,.mini-cell.terrain-estacion.terrain-spacefloor{--floor:#202a44}.tile.terrain-estacion.terrain-wall,.mini-cell.terrain-estacion.terrain-wall{--floor:#46536f}.tile.terrain-estacion.terrain-limit,.mini-cell.terrain-estacion.terrain-limit{--floor:#03050b}
.tile.terrain-piramide.terrain-sandstone,.mini-cell.terrain-piramide.terrain-sandstone{--floor:#b99755}.tile.terrain-piramide.terrain-wall,.mini-cell.terrain-piramide.terrain-wall{--floor:#806936}.tile.terrain-piramide.terrain-limit,.mini-cell.terrain-piramide.terrain-limit{--floor:#111827}
.tile.terrain-bosque.terrain-door,.tile.terrain-jungla.terrain-door,.tile.terrain-playa.terrain-door,.tile.terrain-espacio.terrain-door,.tile.terrain-egipto.terrain-door,.tile.terrain-zoologico.terrain-door,.tile.terrain-casino.terrain-door,.tile.terrain-castillo.terrain-door,.tile.terrain-templo.terrain-door,.tile.terrain-resort.terrain-door,.tile.terrain-estacion.terrain-door,.tile.terrain-piramide.terrain-door{--floor:#2b2014}.tile.terrain-scorch,.mini-cell.terrain-scorch{--floor:inherit}
.map-playa .world-stage{background:radial-gradient(circle at top,#143a5f 0,#07111f 60%,#03060b 100%)}
.map-jungla .world-stage{background:radial-gradient(circle at top,#13391f 0,#07111f 62%,#03060b 100%)}
.map-espacio .world-stage{background:radial-gradient(circle at top,#1c2144 0,#070916 52%,#010208 100%)}
.map-egipto .world-stage{background:radial-gradient(circle at top,#42331b 0,#07111f 62%,#03060b 100%)}
.map-zoologico .world-stage{background:radial-gradient(circle at top,#224b27 0,#07111f 62%,#03060b 100%)}
.map-casino .world-stage{background:radial-gradient(circle at top,#35134e 0,#10091d 58%,#03030a 100%)}
.map-guerra .world-stage{background:radial-gradient(circle at top,#283328 0,#07111f 62%,#03060b 100%)}
.map-medieval .world-stage{background:radial-gradient(circle at top,#26351d 0,#07111f 62%,#03060b 100%)}
.minimap-panel{position:absolute;right:8px;top:calc(82px + env(safe-area-inset-top));z-index:8;width:104px;background:rgba(8,14,25,.86);border:1px solid rgba(114,198,255,.58);border-radius:8px;padding:4px;box-shadow:0 8px 18px rgba(0,0,0,.34);backdrop-filter:blur(5px)}
.minimap-head{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:8px;color:#d9f6ff;margin-bottom:2px}.minimap-title{font-size:8px}.minimap-grid{display:grid;gap:0;background:rgba(255,255,255,.08);border-radius:0;padding:1px;overflow:hidden;width:94px;height:auto;aspect-ratio:var(--mini-w,80)/var(--mini-h,60)}.mini-cell{width:100%;height:100%;display:block;font-size:0;line-height:0;border-radius:0;min-width:0;min-height:0;overflow:hidden;border:0;background:var(--floor,transparent);position:relative}.mini-cell::before{content:"";position:absolute;left:50%;top:50%;width:2px;height:2px;transform:translate(-50%,-50%);border-radius:50%;background:transparent}.mini-cell.decor-dot::before{background:#d7f59a}.mini-cell.tree-dot::before{background:#1f6f2b}.mini-cell.item-dot::before{background:#5ce1ff}.mini-cell.fruit-dot::before{background:#ffb03a}.mini-cell.animal-dot::before{background:#ffdf6e}.mini-cell.vehicle-dot::before{background:#80c7ff}.mini-cell.building-dot::before{background:#b48cff}.mini-cell.door-dot::before{background:#ffffff}.mini-cell.block-dot::before{background:#9d6b4b}.mini-cell.bomb-dot::before{background:#ff6978}.mini-cell.flame-dot::before{background:#ff8b22}.mini-cell.projectile-dot::before{background:#ffe66d}.mini-cell.me::after,.mini-cell.other::after,.mini-cell.target::after,.mini-cell.home::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:#fff}.mini-cell.me::after{background:#ffe66d;box-shadow:0 0 4px #ffe66d}.mini-cell.other::after{background:#72c6ff}.mini-cell.target::after{background:#ff6978}.mini-cell.home::after{background:#f6a65a}.target-hint{font-size:7px;color:var(--muted);line-height:1.1;margin-top:2px;min-height:14px}
.reaction-zone{position:absolute;left:0;right:0;top:42%;z-index:13;display:flex;justify-content:center;align-items:center;pointer-events:none}.reaction-bubble{min-width:118px;padding:12px 18px;border-radius:24px;border:3px solid rgba(255,255,255,.7);background:rgba(4,8,15,.72);box-shadow:0 12px 34px rgba(0,0,0,.5);text-align:center;animation:reactionPop 2.2s ease forwards}.reaction-bubble span{display:block;font-size:64px;line-height:1}.reaction-bubble small{display:block;margin-top:4px;color:#eafff5;font-size:13px}.reaction-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.reaction-row button{width:48px;height:48px;padding:0;border-radius:12px;font-size:24px;border-color:rgba(114,198,255,.58);color:#fff}.chat-reaction{font-size:36px;line-height:1.1;text-align:center;padding:4px 0}@keyframes reactionPop{0%{transform:translateY(24px) scale(.7);opacity:0}15%{transform:translateY(0) scale(1.05);opacity:1}78%{opacity:1}100%{transform:translateY(-50px) scale(.94);opacity:0}}
.toast-zone{position:absolute;left:12px;right:12px;bottom:176px;z-index:12;display:grid;gap:6px;pointer-events:none}.notice{padding:9px 11px;border-radius:10px;border:2px solid rgba(119,255,155,.55);background:rgba(11,35,19,.9);box-shadow:0 8px 18px var(--shadow);font-size:13px;text-align:center}.notice.error{border-color:rgba(255,107,122,.78);background:rgba(54,13,21,.9)}
.gameboy-controls{position:absolute;left:0;right:0;bottom:0;min-height:176px;padding:18px 24px calc(18px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(6,9,20,0),rgba(6,9,20,.88) 22%,#04060c);z-index:9}.dpad{position:relative;width:220px;height:220px}.dpad button{position:absolute;width:66px;height:66px;padding:0;border-radius:14px;background:#111827;color:#eafff5;border-color:#385281;font-size:30px;font-weight:bold;touch-action:none}.dpad [data-dir="up"]{left:77px;top:0}.dpad [data-dir="left"]{left:0;top:77px}.dpad [data-dir="down"]{left:77px;top:154px}.dpad [data-dir="right"]{right:0;top:77px}.gameboy-label{display:grid;gap:4px;text-align:center;color:rgba(234,255,245,.58);font-size:11px;text-shadow:0 1px 0 #000;pointer-events:none}.action-buttons{display:grid;grid-template-columns:repeat(2,72px);grid-template-rows:repeat(2,72px);gap:10px;align-items:center;transform:none}.action-buttons-four{transform:none}.round-btn{width:72px;height:72px;border-radius:999px;padding:0;background:#142915;border-color:#77ff9b;color:#77ff9b;font-weight:bold;font-size:29px;transform:none}.round-btn.shoot-button{background:#1b2438;border-color:#ffe66d;color:#ffe66d}.round-btn.build-button{background:#2a2118;border-color:#d7a05b;color:#ffd6a2}.round-btn.jump-button{background:#172a22;border-color:#77ff9b;color:#77ff9b}.round-btn.bomb-button{background:#291313;border-color:#ff6978;color:#ffb7bd;font-size:29px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:14px;z-index:30}.modal.active{display:flex}.modal-box{width:min(480px,100%);background:#111827;border:3px solid var(--accent);border-radius:18px;padding:18px;box-shadow:0 0 30px rgba(119,255,155,.24)}.login-box p{color:var(--muted);line-height:1.45}.login-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.install-link{display:inline-block;color:var(--accent2);margin-top:2px}
.drawer{position:fixed;inset:0;z-index:24;display:flex;background:rgba(0,0,0,.58);align-items:flex-end;justify-content:center;padding:10px}.drawer[hidden]{display:none!important}.drawer-box{width:min(760px,100%);max-height:min(86dvh,760px);overflow:auto;background:linear-gradient(180deg,#121b2c,#080e18);border:3px solid var(--accent);border-radius:20px;padding:14px;box-shadow:0 -15px 50px var(--shadow)}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:linear-gradient(180deg,#121b2c,#111928);padding-bottom:8px;z-index:2}.drawer-head h2{margin:0}.drawer-head button{width:52px;height:52px;border-radius:999px;padding:0;font-size:26px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.menu-grid button{min-height:60px;border-color:rgba(114,198,255,.58);color:#d9f6ff;background:#07111f;font-size:17px}.drawer-content h3{margin:8px 0 10px}.drawer-content p{color:var(--muted);line-height:1.4;font-size:14px}.emoji-list{font-size:24px;line-height:1.6;word-break:break-word;min-height:44px;background:#050814;border:2px solid var(--line);border-radius:12px;padding:10px}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger{border-color:var(--danger);color:var(--danger);background:#1d090d}.danger-zone{margin-top:12px;color:var(--danger)}.map-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.map-buttons button{min-height:66px;font-size:15px}.map-buttons small{color:var(--muted)}.map-description{border:2px solid var(--line);background:#050814;border-radius:12px;padding:10px;color:var(--muted)}
.profile-card{display:grid;grid-template-columns:128px 1fr;gap:14px;align-items:center;border:2px solid var(--line);background:#050814;border-radius:16px;padding:12px;margin-bottom:12px}.profile-avatar-big{width:128px;height:128px;border-radius:18px;border:3px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:74px;background:#07111f;box-shadow:0 0 22px rgba(119,255,155,.15)}.profile-info h4{margin:0 0 4px;font-size:22px}.profile-info p{margin:0 0 10px}.stat-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:8px}.bar{height:14px;border:2px solid rgba(255,255,255,.14);background:#02050a;border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;width:100%;background:#ff6878}.bar.energy span{background:#77cbff}.profile-counters{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;color:var(--muted);font-size:13px}.profile-counters span{border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#07111f}
.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px;max-height:260px;overflow:auto;border:2px solid var(--line);border-radius:14px;background:#050814;padding:10px;margin:8px 0 12px}
.avatar-option{height:48px;min-width:0;padding:0;border-radius:10px;border:2px solid rgba(114,198,255,.26);background:#07111f;color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center}
.avatar-option.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(119,255,155,.18),0 0 16px rgba(119,255,155,.24);background:#10251a}
.avatar-option:active{transform:scale(.94)}
.chat-messages{height:min(42dvh,330px);overflow:auto;background:#050814;border:2px solid var(--line);border-radius:14px;padding:10px;display:grid;gap:8px;align-content:start}.chat-empty{color:var(--muted);line-height:1.45}.chat-line{border:2px solid rgba(255,255,255,.08);border-radius:13px;background:#07111f;padding:8px}.chat-line.mine{border-color:rgba(119,255,155,.4);background:#071b11}.chat-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#eafff5;font-size:12px;margin-bottom:5px}.chat-meta small{color:var(--muted);white-space:nowrap}.chat-text{font-size:14px;line-height:1.35;word-break:break-word}.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.chat-form input{margin:0}.chat-form button{min-width:92px}.online-list{display:grid;gap:8px}.online-card{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:2px solid rgba(255,255,255,.08);border-radius:12px;background:#050814;padding:8px}.online-card small{color:var(--muted);display:block;margin-top:2px}.online-card button{padding:8px 10px;border-color:var(--accent2);color:var(--accent2);background:#07111f}
@media(max-width:700px){.top-life{width:56px}.player-pill small{font-size:9px}.top-hud{right:82px;gap:6px}.hud-actions{flex-direction:column;gap:8px}.hud-menu,.hud-chat,.hud-inventory,.hud-reload,.hud-map{width:58px;height:58px;font-size:25px}.hud-pill{font-size:12px;padding:7px 10px}.world-grid{top:118px;bottom:184px;width:min(100vw,calc(100dvh - 308px));height:min(100vw,calc(100dvh - 308px));gap:0;padding:0;border-width:4px}.tile{font-size:clamp(12px,4vw,22px)}.sprite.player{font-size:clamp(16px,5vw,25px)}.minimap-panel{width:96px;top:calc(138px + env(safe-area-inset-top));padding:4px}.minimap-grid{width:86px;height:auto}.target-hint{font-size:7px;min-height:14px}.gameboy-controls{min-height:176px;padding-left:16px;padding-right:16px}.dpad{width:198px;height:198px}.dpad button{width:60px;height:60px;font-size:28px}.dpad [data-dir="up"]{left:69px;top:0}.dpad [data-dir="left"]{left:0;top:69px}.dpad [data-dir="down"]{left:69px;top:138px}.dpad [data-dir="right"]{right:0;top:69px}.round-btn{width:68px;height:68px;font-size:27px}.action-buttons{grid-template-columns:repeat(2,68px);grid-template-rows:repeat(2,68px);gap:8px}.gameboy-label{display:none}.toast-zone{bottom:178px}.health-grid,.map-buttons{grid-template-columns:1fr}.chat-form{grid-template-columns:1fr}.chat-form button{width:100%}.profile-card{grid-template-columns:1fr;text-align:center}.profile-avatar-big{margin:auto}}
@media(max-width:420px){.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));max-height:220px}.avatar-option{height:42px;font-size:23px}.gameboy-controls{padding-left:10px;padding-right:10px}.dpad{width:174px;height:174px}.dpad button{width:54px;height:54px;font-size:25px}.dpad [data-dir="up"]{left:60px;top:0}.dpad [data-dir="left"]{left:0;top:60px}.dpad [data-dir="down"]{left:60px;top:120px}.dpad [data-dir="right"]{right:0;top:60px}.round-btn{width:60px;height:60px;font-size:24px}.action-buttons{grid-template-columns:repeat(2,60px);grid-template-rows:repeat(2,60px);gap:7px}.round-btn.bomb-button{font-size:24px}.world-grid{bottom:176px}.menu-grid{grid-template-columns:1fr 1fr}.profile-avatar-big{width:112px;height:112px;font-size:64px}}
@media(min-width:900px){.world-grid{top:90px;bottom:178px;width:min(84vw,calc(100dvh - 280px));height:min(84vw,calc(100dvh - 280px));}.tile{font-size:min(3.2vh,30px)}.sprite{font-size:min(3.2vh,30px)}.gameboy-controls{padding-left:46px;padding-right:46px}}
.install-body{overflow:auto;min-height:100dvh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#142441,#03050a 70%)}.install-panel{width:min(760px,100%);background:rgba(16,24,39,.88);border:3px solid var(--accent);border-radius:18px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.45)}.card{border:2px solid var(--line);background:rgba(17,24,39,.86);border-radius:14px;padding:12px;margin:12px 0}.checklist{list-style:none;padding:0;margin:0}.checklist li{padding:6px 0}.button-link{display:inline-block;border:2px solid var(--accent2);background:#07111f;color:var(--accent2);padding:10px 12px;border-radius:12px;text-decoration:none;margin-left:8px}

/* Ajuste 3.0.0: grilla real del juego y sprites alineados a celda. */
.world-grid{
    --cell-size:calc(100% / var(--map-size));
    background-color:transparent;
}
.floor::after{
    content:"";
    position:absolute;
    inset:0;
    border-right:1px solid rgba(0,0,0,.13);
    border-bottom:1px solid rgba(0,0,0,.13);
    pointer-events:none;
}
.sprite.decor,
.sprite.animal,
.sprite.animal-free,
.sprite.ambient,
.sprite.zoo-animal,
.sprite.zoo-plant,
.sprite.casino-glow{
    width:100%;
    height:100%;
    left:0;
    top:0;
    inset:0;
    font-size:clamp(14px,4.1vw,26px);
}
.sprite.decor:not(.decor-tree):not(.tree-giant),
.sprite.animal,
.sprite.animal-free,
.sprite.ambient,
.sprite.zoo-animal{
    animation:none;
}
.sprite.decor-tree,
.sprite.tree-giant{
    width:200%;
    height:200%;
    left:-50%;
    top:-78%;
    inset:auto;
    font-size:clamp(30px,8.8vw,58px);
    z-index:5200;
    animation:treePeek 2.7s infinite;
}
.sprite.decor-rock,
.sprite.decor-log,
.sprite.decor-flower,
.sprite.decor-mushroom,
.sprite.zoo-plant{
    width:100%;
    height:100%;
    left:0;
    top:0;
    inset:0;
    font-size:clamp(14px,4.1vw,26px);
}
.sprite.landmark-giant{
    z-index:7600;
}
.tile.has-decor .sprite:not(.decor-tree):not(.tree-giant),
.tile.has-animal .sprite,
.tile.has-ambient .sprite{
    transform:none;
}

/* Ajuste 3.1.0: ladrillos únicos como colisión y render más liviano. */
.sprite.maze-brick{
    z-index:105;
    font-size:clamp(17px,4.8vw,31px);
    filter:drop-shadow(0 3px 2px rgba(0,0,0,.28));
}
.tile.has-placed-block .sprite,
.tile.has-maze-brick .sprite{
    transform:none;
}

/* Ajuste 3.2.0: HUD más liviano y objetos quemados sin teñir el piso. */
.status-pill{display:none!important}
.top-hud{right:170px}
.sprite.scorched-sprite{filter:saturate(0) contrast(.5) drop-shadow(0 3px 2px rgba(0,0,0,.34));opacity:.82}
.sprite.enemy{z-index:176;font-size:clamp(18px,5vw,34px);filter:drop-shadow(0 6px 4px rgba(0,0,0,.45));animation:enemyStep 1.1s ease-in-out infinite}
.sprite.item-money{filter:drop-shadow(0 0 7px rgba(255,230,109,.65))}
.sprite.item-weapon{filter:drop-shadow(0 0 7px rgba(255,105,120,.6))}
.sprite.item-relic{filter:drop-shadow(0 0 7px rgba(180,140,255,.58))}
.inventory-equipped{font-size:13px;color:var(--muted);margin:6px 0 10px}.emoji-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.inventory-slot{display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.045);border:1px solid rgba(114,198,255,.25);border-radius:10px;padding:3px}.inventory-item,.inventory-mini{min-width:36px;height:36px;border-radius:8px;border:1px solid rgba(114,198,255,.35);background:#07111f;color:#fff;font-size:22px;padding:0}.inventory-mini{min-width:26px;height:26px;font-size:14px;color:#ffe66d}.floater-money{color:#ffe66d;text-shadow:0 2px 0 #000,0 0 8px rgba(255,230,109,.8)}
@keyframes enemyStep{0%,100%{transform:translateY(0)}50%{transform:translateY(-8%)}}
@media(max-width:700px){.top-hud{right:76px}.hud-inventory{width:46px;height:46px;font-size:21px}.top-life,.top-money{width:44px;margin-left:4px}.player-pill{font-size:11px}}
/*
    Fin archivo: style.css
    Versión: 4.8.0
*/

/* Ajuste 3.3.0: correr/caminar, vehículos con vida, helicóptero y etapas bloqueadas. */
.action-buttons{
    grid-template-columns:repeat(3,72px);
    grid-template-rows:repeat(2,72px);
}
.round-btn.run-button{
    background:#102033;
    border-color:#72c6ff;
    color:#d9f6ff;
}
.map-buttons button.map-locked{
    opacity:.45;
    filter:saturate(.35);
    cursor:not-allowed;
}
.sprite.vehicle-player.vehicle-hp-mid,
.sprite.vehicle.vehicle-hp-mid{
    filter:saturate(.72) drop-shadow(0 8px 5px rgba(0,0,0,.42));
}
.sprite.vehicle-player.vehicle-hp-low,
.sprite.vehicle.vehicle-hp-low{
    filter:saturate(.42) contrast(.82) drop-shadow(0 8px 5px rgba(0,0,0,.42));
}
.sprite.vehicle-player.vehicle-hp-critical,
.sprite.vehicle.vehicle-hp-critical,
.sprite.vehicle-wreck{
    filter:saturate(.12) contrast(.68) drop-shadow(0 8px 5px rgba(0,0,0,.42));
}
.sprite.vehicle-kind-car.vehicle-damaged::after{
    content:"🔥🔥";
    position:absolute;
    right:-18%;
    top:-18%;
    z-index:2;
    font-size:34%;
    letter-spacing:-.25em;
    filter:drop-shadow(0 0 4px rgba(255,90,0,.9));
    animation:tinyFire .36s infinite alternate;
}
.sprite.helicopter-player::before{
    content:"";
    position:absolute;
    left:25%;
    right:25%;
    bottom:13%;
    height:15%;
    border-radius:50%;
    background:rgba(0,0,0,.32);
    filter:blur(2px);
    z-index:-1;
    transform:rotate(calc(var(--vehicle-rot,0deg) * -1)) scaleX(var(--vehicle-flip,1));
}
.sprite.helicopter-player{
    animation:helicopterHover .52s ease-in-out infinite;
}
@keyframes tinyFire{from{transform:scale(.85) translateY(1px)}to{transform:scale(1.12) translateY(-2px)}}
@keyframes helicopterHover{0%,100%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(-2px)}50%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(-8px)}}
@media(max-width:700px){
    .action-buttons{grid-template-columns:repeat(3,62px);grid-template-rows:repeat(2,62px);gap:8px}
    .round-btn{width:62px;height:62px;font-size:24px}
}
@media(max-width:420px){
    .action-buttons{grid-template-columns:repeat(3,54px);grid-template-rows:repeat(2,54px);gap:7px}
    .round-btn{width:54px;height:54px;font-size:22px}
}
/*
    Fin ajuste 3.3.0
*/

/* Ajuste 3.4.0: controles activos, minimapa superior izquierdo, mano, muerte y vehículos nuevos. */
html,body,#app,.game-shell,.world-stage,.tile,.sprite,.hud-pill,.drawer,.drawer-content,.gameboy-controls,.minimap-panel,.toast-zone,.reaction-zone{
    -webkit-user-select:none;
    user-select:none;
}
input,textarea{
    -webkit-user-select:text;
    user-select:text;
}
button.is-pressed,
button:active,
.dpad button.is-pressed,
.round-btn.is-pressed{
    background:#77ff9b!important;
    color:#06120d!important;
    border-color:#eafff5!important;
    box-shadow:0 0 18px rgba(119,255,155,.48), inset 0 0 0 2px rgba(0,0,0,.18)!important;
    transform:scale(.94)!important;
}
.round-btn.hand-button{
    background:#201a33;
    border-color:#b98cff;
    color:#f0ddff;
}
.minimap-panel{
    left:8px;
    right:auto;
    top:calc(8px + env(safe-area-inset-top));
    z-index:12;
    width:108px;
}
.top-hud{
    left:124px;
    right:170px;
    top:calc(8px + env(safe-area-inset-top));
}
.hud-actions{
    z-index:13;
}
.death-overlay{
    position:absolute;
    inset:0;
    z-index:26;
    display:flex;
    align-items:center;
    justify-content:center;
    pointer-events:none;
    opacity:0;
    transform:scale(.82);
    transition:opacity .16s ease, transform .16s ease;
    font-size:clamp(46px,15vw,150px);
    font-weight:900;
    letter-spacing:.06em;
    color:#ff4d5f;
    text-shadow:0 5px 0 #250006,0 0 22px rgba(255,40,60,.82),0 0 56px rgba(0,0,0,.9);
    background:radial-gradient(circle,rgba(0,0,0,.26),rgba(0,0,0,.74));
}
.death-overlay.active{
    opacity:1;
    transform:scale(1);
}
.sprite.boat-player{
    animation:boatFloat .62s ease-in-out infinite;
}
.sprite.vehicle-boat{
    filter:drop-shadow(0 8px 5px rgba(0,0,0,.42));
}
@keyframes boatFloat{
    0%,100%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(0)}
    50%{transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) translateY(-4px)}
}
@media(max-width:700px){
    .minimap-panel{left:6px;top:calc(8px + env(safe-area-inset-top));width:92px;padding:3px}
    .minimap-grid{width:82px}
    .top-hud{left:104px;right:72px;top:calc(8px + env(safe-area-inset-top))}
    .action-buttons{grid-template-columns:repeat(3,62px);grid-template-rows:repeat(2,62px);gap:8px}
    .round-btn{width:62px;height:62px;font-size:24px}
}
@media(max-width:420px){
    .minimap-panel{width:86px}
    .minimap-grid{width:76px}
    .top-hud{left:96px;right:70px}
    .action-buttons{grid-template-columns:repeat(3,54px);grid-template-rows:repeat(2,54px);gap:7px}
    .round-btn{width:54px;height:54px;font-size:21px}
}
/* Fin ajuste 3.4.0 */

/* Ajuste 3.5.0: mazmorras pequeñas, fantasmas sobre lápida y casa de reaparición. */
.map-cementerio .world-stage{background:radial-gradient(circle at top,#1a1d2c 0,#080910 60%,#020307 100%)}
.map-casa .world-stage{background:radial-gradient(circle at top,#29321f 0,#10170d 62%,#050804 100%)}
.terrain-casa.terrain-homefloor .floor{background:#8a613e}
.terrain-casa.terrain-wall .floor{background:#4c3326}
.terrain-cementerio.terrain-cemetery .floor{background:#263026}
.terrain-cementerio.terrain-path .floor{background:#4b4b42}
.terrain-cementerio.terrain-sanctuary .floor{background:#6b6555}
.sprite.ghost-player{z-index:9100;animation:ghostFloat 1.35s ease-in-out infinite;filter:drop-shadow(0 5px 4px rgba(0,0,0,.55))}
.sprite.ghost-player::before{content:"🪦";position:absolute;left:50%;bottom:-34%;transform:translateX(-50%);z-index:-1;font-size:72%;filter:saturate(.75) contrast(.85);opacity:.95}
.sprite.decor-grave{filter:saturate(.8) contrast(.8)}
@keyframes ghostFloat{0%,100%{transform:translateY(-8%)}50%{transform:translateY(-24%)}}
/* Fin ajuste 3.5.0 */

/* Ajuste 3.6.0: HUD vertical, barra superior compacta y avisos pequeños. */
.hud-actions{
    flex-direction:column;
    align-items:flex-end;
    gap:7px;
}
.top-hud{
    left:124px;
    right:76px;
}
.player-pill{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:52px;
}
.player-name-big{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:clamp(17px,2.4vw,25px);
    font-weight:900;
    color:#f3fff8;
}
.top-life-wrap{
    display:inline-flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto;
}
.top-life-wrap small,
.money-inline{
    font-size:12px;
    color:#eafff5;
    white-space:nowrap;
}
.top-money{display:none!important}
.money-inline{color:#ffe66d;font-weight:900}
.notice{
    justify-self:center;
    width:auto;
    max-width:min(260px,72vw);
    padding:5px 9px;
    border-width:1px;
    border-radius:999px;
    font-size:12px;
    line-height:1.1;
    background:rgba(8,19,28,.74);
    backdrop-filter:blur(4px);
}
.toast-zone{
    left:50%;
    right:auto;
    bottom:154px;
    transform:translateX(-50%);
    gap:3px;
}
@media(max-width:700px){
    .top-hud{left:104px;right:70px;top:calc(8px + env(safe-area-inset-top))}
    .player-pill{min-height:44px;padding:6px 9px;gap:6px}
    .player-name-big{font-size:16px}
    .top-life{width:48px;margin-left:0}
    .top-life-wrap small,.money-inline{font-size:10px}
    .hud-actions{gap:6px}
    .hud-menu,.hud-chat,.hud-inventory,.hud-reload,.hud-map{width:48px;height:48px;font-size:22px}
    .toast-zone{bottom:158px}
}
@media(max-width:420px){
    .top-hud{left:96px;right:64px}
    .player-name-big{font-size:15px}
    .top-life{width:42px}
    .hud-menu,.hud-chat,.hud-inventory,.hud-reload,.hud-map{width:44px;height:44px;font-size:20px}
}
/* Fin ajuste 3.6.0 */

/* Ajuste 3.8.0: nombres y vida de jugadores, chat por mapa y mazmorras angostas. */
.sprite.other-player-label{
    overflow:visible;
    z-index:8600;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:1px;
}
.sprite.other-player-label .other-name{
    position:absolute;
    left:50%;
    bottom:82%;
    transform:translateX(-50%);
    max-width:54px;
    padding:1px 3px;
    border-radius:999px;
    background:rgba(2,7,14,.78);
    border:1px solid rgba(255,255,255,.18);
    color:#eafff5;
    font-size:7px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    text-shadow:none;
    z-index:3;
}
.sprite.other-player-label .other-life{
    position:absolute;
    left:18%;
    right:18%;
    bottom:70%;
    height:3px;
    border-radius:999px;
    overflow:hidden;
    background:rgba(255,0,0,.28);
    border:1px solid rgba(0,0,0,.42);
    z-index:3;
}
.sprite.other-player-label .other-life i{
    display:block;
    height:100%;
    background:#77ff9b;
}
.sprite.other-player-label .other-avatar{
    display:block;
    line-height:1;
}
.sprite.ghost-player.dungeon-avatar{
    opacity:.52;
    filter:saturate(.55) contrast(.82) drop-shadow(0 5px 4px rgba(0,0,0,.55));
}
.sprite.ghost-player.dungeon-avatar::before{
    content:"🪦";
    position:absolute;
    left:50%;
    bottom:-34%;
    transform:translateX(-50%);
    z-index:-1;
    font-size:72%;
    opacity:.8;
}
.sprite.decor-skull,
.sprite.decor-rose{
    filter:drop-shadow(0 3px 2px rgba(0,0,0,.4));
}
.chat-line.event{
    border-color:rgba(255,230,109,.24);
    background:rgba(55,38,8,.46);
}
.chat-event{
    font-size:13px;
    color:#ffe66d;
    font-weight:900;
}
/* Fin ajuste 3.8.0 */
.sprite.ghost-player.dungeon-avatar{animation:none;}
.terrain-cementerio .sprite.decor-ghost{opacity:.42;animation:ghostFloat 2.2s ease-in-out infinite;filter:saturate(.4) contrast(.75) drop-shadow(0 4px 4px rgba(0,0,0,.45));}

/* Ajuste 3.9.0: presentación inicial, minimapa con jugadores rojos y mejoras livianas de rendimiento visual. */
.intro-panel{
    position:fixed;
    inset:0;
    z-index:80;
    display:none;
    overflow:hidden;
    align-items:center;
    justify-content:center;
    background:radial-gradient(circle at center,#19345a 0%,#091426 45%,#02050a 100%);
}
.intro-panel.active{display:flex}
.intro-emoji-field{
    position:absolute;
    inset:0;
    pointer-events:none;
}
.intro-emoji-field span{
    position:absolute;
    font-size:clamp(28px,7vw,74px);
    filter:drop-shadow(0 10px 8px rgba(0,0,0,.45));
    animation:introEmojiJump 2.8s ease-in-out infinite;
}
.intro-emoji-field span:nth-child(1){left:6%;top:14%;animation-delay:.05s}.intro-emoji-field span:nth-child(2){left:18%;top:74%;animation-delay:.25s}.intro-emoji-field span:nth-child(3){left:84%;top:24%;animation-delay:.45s}.intro-emoji-field span:nth-child(4){left:72%;top:70%;animation-delay:.65s}.intro-emoji-field span:nth-child(5){left:9%;top:52%;animation-delay:.85s}.intro-emoji-field span:nth-child(6){left:80%;top:50%;animation-delay:1.05s}.intro-emoji-field span:nth-child(7){left:38%;top:12%;animation-delay:1.25s}.intro-emoji-field span:nth-child(8){left:54%;top:82%;animation-delay:1.45s}.intro-emoji-field span:nth-child(9){left:28%;top:40%;animation-delay:1.65s}.intro-emoji-field span:nth-child(10){left:62%;top:18%;animation-delay:1.85s}.intro-emoji-field span:nth-child(11){left:48%;top:58%;animation-delay:2.05s}.intro-emoji-field span:nth-child(12){left:92%;top:78%;animation-delay:2.25s}.intro-emoji-field span:nth-child(13){left:3%;top:84%;animation-delay:2.45s}.intro-emoji-field span:nth-child(14){left:70%;top:8%;animation-delay:2.65s}.intro-emoji-field span:nth-child(15){left:30%;top:82%;animation-delay:2.85s}.intro-emoji-field span:nth-child(16){left:50%;top:30%;animation-delay:3.05s}
.intro-card{
    position:relative;
    width:min(430px,calc(100vw - 30px));
    padding:28px 20px;
    text-align:center;
    border:3px solid var(--accent);
    border-radius:22px;
    background:rgba(7,17,31,.88);
    box-shadow:0 0 34px rgba(119,255,155,.24),0 18px 80px rgba(0,0,0,.55);
    backdrop-filter:blur(8px);
}
.intro-card h1{
    margin:0 0 8px;
    font-size:clamp(54px,14vw,118px);
    line-height:.9;
    letter-spacing:.08em;
    color:#eafff5;
    text-shadow:0 0 16px rgba(119,255,155,.5),0 5px 0 #06210f;
}
.intro-card p{
    margin:0 auto 18px;
    max-width:310px;
    color:#c9e8d2;
    font-size:14px;
    line-height:1.35;
}
#btnIntroEnter{
    min-width:170px;
    font-size:18px;
    border-radius:999px;
    background:#102918;
    color:#eafff5;
}
@keyframes introEmojiJump{
    0%,100%{transform:translate(0,0) rotate(-7deg) scale(1)}
    25%{transform:translate(22px,-38px) rotate(8deg) scale(1.16)}
    50%{transform:translate(-18px,28px) rotate(-12deg) scale(.92)}
    75%{transform:translate(34px,16px) rotate(14deg) scale(1.08)}
}
.mini-cell.other::after{
    width:7px!important;
    height:7px!important;
    background:#ff1f3d!important;
    border:1px solid #fff;
    box-shadow:0 0 0 2px rgba(255,31,61,.35),0 0 8px rgba(255,31,61,.95)!important;
    z-index:5;
}
.mini-cell.target::after{
    width:7px!important;
    height:7px!important;
    background:#ffdd4a!important;
    border:1px solid #111;
    box-shadow:0 0 0 2px rgba(255,221,74,.42),0 0 8px rgba(255,221,74,.95)!important;
    z-index:6;
}
.mini-cell.me::after{
    width:6px!important;
    height:6px!important;
    z-index:7;
}
.world-grid,.tile,.sprite,.floor,.minimap-grid,.mini-cell{backface-visibility:hidden;transform:translateZ(0)}
/* Fin ajuste 3.9.0 */


/* Ajuste 4.0.0: minimapa ultra liviano, nuevos biomas y enemigos temáticos. */
.minimap-grid{display:block!important;width:160px!important;height:110px!important;padding:0!important;background:rgba(0,0,0,.24)!important;overflow:hidden!important}
.mini-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;border:1px solid rgba(114,198,255,.28);background:rgba(0,0,0,.18)}
.target-hint{display:none!important}.minimap-head{margin-bottom:3px}.minimap-panel{width:170px!important}
.sprite.spaceship-fly{z-index:120;font-size:clamp(18px,5vw,34px);animation:spaceShipPass 3.4s linear infinite;opacity:.9}
@keyframes spaceShipPass{0%{transform:translateX(-40%) translateY(0)}50%{transform:translateX(40%) translateY(-12%)}100%{transform:translateX(-40%) translateY(0)}}
.tile.terrain-infierno.terrain-lavafloor{--floor:#4b1515}.tile.terrain-infierno.terrain-hellpath{--floor:#6b2615}.tile.terrain-infierno.terrain-lava{--floor:#b03a13}.tile.terrain-infierno.terrain-path{--floor:#64251f}.tile.terrain-infierno.terrain-limit{--floor:#090304}
.tile.terrain-campo.terrain-field{--floor:#6dab42}.tile.terrain-campo.terrain-path{--floor:#9a7b42}.tile.terrain-campo.terrain-building{--floor:#8b5d37}.tile.terrain-campo.terrain-limit{--floor:#20242a}
.tile.terrain-china.terrain-garden{--floor:#4fa34f}.tile.terrain-china.terrain-path{--floor:#bc724f}.tile.terrain-china.terrain-water{--floor:#3a83a9}.tile.terrain-china.terrain-limit{--floor:#20242a}
.tile.terrain-jardin.terrain-garden{--floor:#58a94b}.tile.terrain-jardin.terrain-path{--floor:#79a94b}.tile.terrain-jardin.terrain-limit{--floor:#20242a}
.tile.terrain-mar.terrain-water{--floor:#1179bd}.tile.terrain-mar.terrain-shore{--floor:#e4cf84}.tile.terrain-mar.terrain-dock{--floor:#805130}.tile.terrain-mar.terrain-limit{--floor:#06101d}
.tile.terrain-guerra.terrain-battle{--floor:#5c684f}.tile.terrain-guerra.terrain-path{--floor:#6b6250}.tile.terrain-guerra.terrain-trench{--floor:#3d3329}.tile.terrain-guerra.terrain-base{--floor:#454d46}.tile.terrain-guerra.terrain-wall{--floor:#363b35}.tile.terrain-guerra.terrain-limit{--floor:#171a17}
.tile.terrain-medieval.terrain-meadow{--floor:#5c9b3b}.tile.terrain-medieval.terrain-path{--floor:#8b7649}.tile.terrain-medieval.terrain-stone{--floor:#686866}.tile.terrain-medieval.terrain-water{--floor:#2977a8}.tile.terrain-medieval.terrain-wall{--floor:#4f4f52}.tile.terrain-medieval.terrain-building{--floor:#5d5652}.tile.terrain-medieval.terrain-limit{--floor:#1c211b}
@media(max-width:700px){.minimap-panel{width:132px!important}.minimap-grid{width:122px!important;height:84px!important}.minimap-head{font-size:7px}}


/* Ajuste 4.2.0: botón de recarga directa y choque vehicular visible. */
.hud-reload{
    border-color:rgba(255,230,109,.85);
    color:#ffe66d;
    background:rgba(28,22,8,.92);
}
.sprite.floater.damage{
    color:#ffec8a;
    text-shadow:0 2px 0 #000,0 0 10px rgba(255,80,40,.9),0 0 18px rgba(255,220,90,.65);
}
/* Fin ajuste 4.2.0 */


/* Ajuste 4.3.0: transición entre etapas, recarga visible y árboles sin animación permanente. */
.sprite.decor-tree,
.sprite.tree-giant{
    animation:none!important;
}
#btnIntroEnter{
    touch-action:manipulation;
    pointer-events:auto;
    position:relative;
    z-index:3;
}
.stage-transition{
    position:fixed;
    inset:0;
    z-index:95;
    display:none;
    align-items:center;
    justify-content:center;
    background:radial-gradient(circle at center,rgba(13,42,72,.96),rgba(3,8,15,.98));
    color:#eafff5;
    text-align:center;
}
.stage-transition.active{display:flex;}
.stage-transition-card{
    width:min(420px,calc(100vw - 34px));
    border:3px solid #77ff9b;
    border-radius:24px;
    background:rgba(7,17,31,.9);
    box-shadow:0 0 32px rgba(119,255,155,.28),0 18px 70px rgba(0,0,0,.55);
    padding:26px 18px;
}
.stage-transition-emojis{
    font-size:clamp(36px,11vw,82px);
    line-height:1;
    margin-bottom:8px;
    filter:drop-shadow(0 10px 7px rgba(0,0,0,.45));
}
.stage-transition h2{
    margin:0 0 12px;
    font-size:clamp(22px,6vw,42px);
    color:#f3fff8;
}
.stage-transition strong{
    display:block;
    min-height:1.2em;
    font-size:clamp(42px,14vw,96px);
    color:#ffe66d;
    text-shadow:0 0 16px rgba(255,230,109,.45);
}
.hud-reload{
    display:flex!important;
    align-items:center;
    justify-content:center;
    order:4;
    visibility:visible!important;
    opacity:1!important;
}
.hud-menu{order:3;}
/* Fin ajuste 4.3.0 */


/* Ajuste 4.4.0: render por capas, suelo estático y tiles más grandes. */
.world-grid.layered-world{
    display:block!important;
    overflow:hidden;
    background:#07111f;
    --cell-px:38px;
    contain:layout paint size;
    isolation:isolate;
}
.world-grid.layered-world .map-layer{
    position:absolute;
    left:0;
    top:0;
    transform-origin:0 0;
    will-change:transform;
    pointer-events:none;
}
.floor-layer{
    display:grid;
    z-index:1;
    contain:layout paint style;
}
.static-layer{z-index:10;contain:layout paint style;}
.block-layer{z-index:20;contain:layout paint style;}
.item-layer{z-index:30;contain:layout paint style;}
.vehicle-layer{z-index:40;contain:layout paint style;}
.actor-layer{z-index:50;contain:layout paint style;}
.effect-layer{z-index:60;contain:layout paint style;}
.floor-cell{
    width:var(--cell-px);
    height:var(--cell-px);
    aspect-ratio:auto;
    background:var(--floor,#4fa237);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.035);
    contain:strict;
}
.sprite-slot{
    position:absolute;
    width:var(--cell-px);
    height:var(--cell-px);
    overflow:visible;
    pointer-events:none;
    contain:layout style;
}
.sprite-slot .sprite{
    position:absolute;
    inset:0;
}
.world-grid.layered-world .tile{
    font-size:calc(var(--cell-px) * .62);
}
.world-grid.layered-world .sprite{
    font-size:calc(var(--cell-px) * .72);
}
.world-grid.layered-world .sprite.player,
.world-grid.layered-world .sprite.other,
.world-grid.layered-world .sprite.enemy,
.world-grid.layered-world .sprite.vehicle-player{
    font-size:calc(var(--cell-px) * .88);
}
.world-grid.layered-world .sprite.decor-tree,
.world-grid.layered-world .sprite.tree-giant{
    font-size:calc(var(--cell-px) * 1.55);
}
.world-grid.layered-world .sprite.landmark-giant{
    font-size:calc(var(--cell-px) * 2.35);
}
.world-grid.layered-world .sprite.vehicle{
    font-size:calc(var(--cell-px) * .9);
}
.world-grid.layered-world .floater{
    position:absolute;
    inset:auto auto 85% 50%;
    transform:translateX(-50%);
}
.top-life-wrap.vehicle-mode small,
.player-pill small{
    white-space:nowrap;
}
@media(max-width:700px){
    .world-grid.layered-world{--cell-px:42px;}
    .world-grid{top:118px;bottom:184px;width:min(100vw,calc(100dvh - 302px));height:min(100vw,calc(100dvh - 302px));}
}
@media(min-width:900px){
    .world-grid.layered-world{--cell-px:40px;}
}
/* Fin ajuste 4.4.0 */


/* Ajuste 4.5.0: corrección de capas visibles y minimapa liviano sin tapar HUD. */
.top-hud{
    left:8px!important;
    right:76px!important;
    top:calc(8px + env(safe-area-inset-top))!important;
    z-index:14!important;
}
.minimap-panel{
    left:8px!important;
    right:auto!important;
    top:calc(78px + env(safe-area-inset-top))!important;
    z-index:10!important;
    width:142px!important;
    padding:4px!important;
}
.minimap-head{font-size:8px!important;margin-bottom:3px!important}
.minimap-grid{
    display:block!important;
    width:132px!important;
    height:92px!important;
    padding:0!important;
    background:rgba(0,0,0,.22)!important;
    overflow:hidden!important;
}
.mini-canvas{
    display:block!important;
    width:100%!important;
    height:100%!important;
    image-rendering:auto!important;
    border:1px solid rgba(114,198,255,.28)!important;
}
.target-hint{display:none!important}
.world-grid.layered-world .map-layer{
    overflow:visible!important;
}
.world-grid.layered-world .sprite-slot{
    display:block!important;
    visibility:visible!important;
}
.world-grid.layered-world .actor-layer,
.world-grid.layered-world .vehicle-layer,
.world-grid.layered-world .item-layer,
.world-grid.layered-world .block-layer,
.world-grid.layered-world .static-layer,
.world-grid.layered-world .effect-layer{
    min-width:100%;
    min-height:100%;
}
@media(max-width:700px){
    .top-hud{left:8px!important;right:68px!important}
    .minimap-panel{top:calc(70px + env(safe-area-inset-top))!important;width:120px!important}
    .minimap-grid{width:110px!important;height:76px!important}
}
@media(max-width:420px){
    .top-hud{left:8px!important;right:62px!important}
    .minimap-panel{width:112px!important}
    .minimap-grid{width:102px!important;height:70px!important}
}
/* Fin ajuste 4.5.0 */

/* Ajuste 4.6.0: velocidades proporcionales, bicicleta y mapas Halloween/Navidad. */
.sprite.vehicle-player .vehicle-main{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
}
.sprite.vehicle-player .vehicle-rider{
    position:absolute;
    left:50%;
    top:12%;
    transform:translateX(-50%);
    font-size:38%;
    line-height:1;
    filter:drop-shadow(0 2px 1px rgba(0,0,0,.55));
    z-index:2;
}
.sprite.bike-player{
    font-size:calc(var(--cell-px) * .86)!important;
    filter:drop-shadow(0 7px 4px rgba(0,0,0,.45));
}
.sprite.vehicle-bike{
    font-size:calc(var(--cell-px) * .82)!important;
}
.map-halloween .world-stage{background:radial-gradient(circle at top,#2d1b33 0,#101321 58%,#04050a 100%)}
.map-navidad .world-stage{background:radial-gradient(circle at top,#dff8ff 0,#123044 55%,#07111f 100%)}
.tile.terrain-halloween.terrain-halloween{--floor:#2b3a23}.tile.terrain-halloween.terrain-path{--floor:#5f4b2e}.tile.terrain-halloween.terrain-pumpkin{--floor:#7d4c1f}.tile.terrain-halloween.terrain-building{--floor:#3a3038}.tile.terrain-halloween.terrain-wall{--floor:#20242a}.tile.terrain-halloween.terrain-limit{--floor:#070a0d}
.tile.terrain-navidad.terrain-snow{--floor:#dcefff}.tile.terrain-navidad.terrain-path{--floor:#c9ad78}.tile.terrain-navidad.terrain-ice{--floor:#98d8f2}.tile.terrain-navidad.terrain-building{--floor:#b6443f}.tile.terrain-navidad.terrain-wall{--floor:#8fbbb6}.tile.terrain-navidad.terrain-limit{--floor:#d8eef7}
/* Fin ajuste 4.6.0 */


/* Ajuste 4.7.0: fondo compacto y árboles sobre bloques/items. */
.floor-layer.tile{
    display:block!important;
    position:absolute!important;
    aspect-ratio:auto!important;
    background:var(--floor,#4fa237)!important;
    overflow:hidden!important;
    contain:strict!important;
}
.floor-layer .floor-patch{
    position:absolute!important;
    display:block!important;
    min-width:0!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    background:var(--floor,#4fa237)!important;
    box-shadow:none!important;
    contain:strict!important;
}
.floor-cell{display:none!important}
.tree-layer{
    z-index:35;
    contain:layout paint style;
}
.world-grid.layered-world .tree-layer .sprite-slot{
    overflow:visible!important;
}
.world-grid.layered-world .tree-layer .sprite.decor-tree,
.world-grid.layered-world .tree-layer .sprite.tree-giant{
    z-index:1;
}
/* Fin ajuste 4.7.0 */


/* Ajuste 4.8.0: movimiento sin rebote horizontal y laberinto más presente. */
.sprite.player-walking{
    animation:playerStepNoBounce .075s ease-out forwards!important;
}
@keyframes playerStepNoBounce{
    0%{transform:translate3d(0,0,0) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1)}
    45%{transform:translate3d(calc(var(--walk-x) * .10), calc(var(--walk-y) * .10),0) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1.015)}
    100%{transform:translate3d(0,0,0) rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1)) scale(1)}
}
.world-grid.layered-world .sprite.maze-brick,
.world-grid.layered-world .sprite.placed-block{
    font-size:calc(var(--cell-px) * .78);
}
/* Fin ajuste 4.8.0 */

/* Ajuste 4.9.0: mochila agrupada, chat flotante, avatar rápido y ciudad. */
.hud-avatar{
    position:relative;
    border-radius:999px;
    width:56px;
    height:56px;
    padding:0;
    font-size:25px;
    background:rgba(7,17,31,.9);
    border-color:rgba(255,230,109,.85);
    color:#ffe66d;
}
.quick-avatar-panel{
    position:fixed;
    inset:0;
    z-index:29;
    background:rgba(0,0,0,.42);
    display:grid;
    place-items:end center;
    padding:12px;
}
.quick-avatar-panel[hidden]{display:none!important}
.quick-avatar-box{
    width:min(560px,100%);
    max-height:min(70dvh,560px);
    overflow:auto;
    background:linear-gradient(180deg,#121b2c,#080e18);
    border:3px solid var(--accent);
    border-radius:18px;
    padding:12px;
    box-shadow:0 -12px 40px rgba(0,0,0,.44);
}
.quick-avatar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.quick-avatar-head h3{margin:0;font-size:18px}.quick-avatar-head button{width:44px;height:44px;padding:0;border-radius:999px;font-size:22px}
.inventory-slot .inventory-item small,.pet-slot .inventory-item small{font-size:12px;color:#ffe66d;margin-left:2px}
.pet-slot .inventory-mini{border-color:var(--accent);color:var(--accent)}
.sprite.pet-follower{filter:drop-shadow(0 4px 3px rgba(0,0,0,.42));opacity:.98}
.floater-chat{
    top:-35%;
    min-width:max-content;
    max-width:180px;
    padding:4px 7px;
    border:1px solid rgba(255,255,255,.55);
    border-radius:10px;
    background:rgba(4,9,18,.84);
    color:#eafff5;
    font-size:clamp(8px,2.4vw,13px);
    line-height:1.15;
    white-space:normal;
    animation:chatFloat 3.6s ease-out forwards;
}
@keyframes chatFloat{0%{opacity:0;transform:translate(-50%,8px) scale(.9)}12%{opacity:1;transform:translate(-50%,0) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-22px) scale(.96)}}
.map-ciudad .floor-layer{background:#565d63}.terrain-ciudad.terrain-asphalt{background:#565d63}.terrain-ciudad.terrain-sidewalk{background:#8a8f96}.terrain-ciudad.terrain-park{background:#4fa237}.terrain-ciudad.terrain-rail{background:#57514a}.terrain-ciudad.terrain-building{background:#343a46}.terrain-ciudad.terrain-station{background:#71624c}
.sprite.vehicle-train,.sprite.vehicle-player.vehicle-kind-train{filter:drop-shadow(0 8px 5px rgba(0,0,0,.46));}
@media(max-width:700px){.hud-actions{flex-direction:column}.hud-menu,.hud-chat,.hud-inventory,.hud-reload,.hud-map,.hud-avatar{width:58px;height:58px;font-size:25px}.quick-avatar-panel{place-items:end center}.quick-avatar-box{max-height:72dvh}.quick-avatar-box .avatar-grid{max-height:54dvh}}

/* Ajuste 5.0.0: mando Bluetooth, Minijuegos y fuego/daño visible en vehículos. */
.gamepad-toggle{display:flex;align-items:center;gap:8px;margin:10px 0;color:#eafff5;font-size:15px}
.gamepad-toggle input{width:18px;height:18px}
.gamepad-status{border:1px solid rgba(114,198,255,.35);background:#050814;border-radius:10px;padding:8px;margin:8px 0 10px;color:#d9f6ff;font-size:13px}
.gamepad-bindings{display:grid;gap:7px;margin:10px 0}
.gamepad-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border:1px solid rgba(114,198,255,.24);background:rgba(5,8,20,.7);border-radius:10px;padding:7px}
.gamepad-row span{font-size:13px}.gamepad-row strong{font-size:12px;color:#ffe66d}.gamepad-row button{padding:7px 9px;font-size:12px}.gamepad-row.learning{border-color:#77ff9b;box-shadow:0 0 12px rgba(119,255,155,.18)}
.map-minijuegos .floor-layer{background:#241d46}.terrain-minijuegos.terrain-arcade{background:#241d46}.terrain-minijuegos.terrain-neon{background:#322368}.terrain-minijuegos.terrain-path{background:#3f3159}.terrain-minijuegos.terrain-building{background:#151a2a}.terrain-minijuegos.terrain-limit{background:#060812}
.sprite.vehicle-damaged::after{content:"🔥";position:absolute;right:-14%;top:-18%;z-index:3;font-size:36%;filter:drop-shadow(0 0 5px rgba(255,100,0,.95));animation:tinyFire .35s infinite alternate;pointer-events:none}
.sprite.vehicle-player.vehicle-damaged::after{content:"🔥🔥"}
@media(max-width:520px){.gamepad-row{grid-template-columns:1fr auto}.gamepad-row button{grid-column:1/-1}}
/* Fin ajuste 5.0.0 */

/* Ajuste 047: soporte visual para mapas creados desde editor-mapas.php. */
.map-editor{--base-floor:#4f9b3b}
.map-editor .world-grid{background:#4f9b3b}
.terrain-editor,.floor-editor{background:#4f9b3b}
.custom-door{filter:drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 6px rgba(250,204,21,.45))}

.sprite.pet-follower{cursor:pointer;filter:drop-shadow(0 4px 4px rgba(0,0,0,.35))}
.sprite.pet-follower:hover{transform:scale(1.12)}

/* Parche 051: movimiento sin rebote visual */
.sprite.player-walking{animation:none!important;transform:rotate(var(--vehicle-rot,0deg)) scaleX(var(--vehicle-flip,1))!important}

/* Parche 052: centrado visual de árboles editados para que no aparezcan chuecos */
.world-grid.layered-world .tree-layer .sprite.decor-tree,
.world-grid.layered-world .tree-layer .sprite.tree-giant{
    left:-50%!important;
    top:-82%!important;
    width:200%!important;
    height:200%!important;
    transform:none!important;
    text-align:center!important;
}
/* Fin parche 052 */


/* Parche 057: mazmorras sin lápida pegada al personaje fantasma */
.sprite.ghost-player::before,
.sprite.ghost-player.dungeon-avatar::before{
    content:none!important;
    display:none!important;
}
/* Fin parche 057 */

/* Parche 058: efecto de puerta abierta */
.door-open-hole{position:absolute;inset:12%;background:#01050d;border-radius:5px;box-shadow:inset 0 0 0 2px rgba(148,163,184,.18),0 8px 18px rgba(0,0,0,.45);z-index:0;pointer-events:none}
.sprite.door-open-anim{position:relative;z-index:2;display:grid;place-items:center;transform-origin:left center;animation:kimusDoorOpen058 .82s ease-out forwards;filter:drop-shadow(10px 2px 4px rgba(0,0,0,.35));backface-visibility:hidden}
@keyframes kimusDoorOpen058{0%{transform:translateX(0) rotateY(0deg) scale(1)}100%{transform:translateX(calc(-1 * var(--cell-px,32px))) rotateY(72deg) scale(.9)}}

/* Parche 059: suelo exacto desde editor y desplazamiento visual más estable */
.world-grid.layered-world .floor-layer,
.world-grid.layered-world .floor-layer .floor-patch{
    background:var(--floor,#4fa237)!important;
}
.world-grid.layered-world .map-layer{
    transition:transform .11s linear;
}
/* Fin parche 059 */


/* Parche 060: puertas bloqueadas y entrada cinematica con boton mano */
.sprite.door-enter-player{
    z-index:9300!important;
    animation:kimusDoorEnter060 1.05s ease-in forwards!important;
    filter:drop-shadow(0 8px 5px rgba(0,0,0,.52)) drop-shadow(0 0 8px rgba(255,230,130,.35));
}
@keyframes kimusDoorEnter060{
    0%{transform:scale(1);opacity:1}
    45%{transform:scale(.92) translateY(-6%);opacity:.98}
    100%{transform:scale(.45) translateY(-10%);opacity:0}
}
/* Fin parche 060 */

/* Parche 062: apertura realista de puertas */
.door-open-hole{position:absolute;inset:10%;background:#000;border-radius:6px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.9),0 8px 18px rgba(0,0,0,.5);z-index:0;pointer-events:none}
span.sprite.door.open{z-index:185;transform-origin:left center;animation:kimusDoorOpen062 .95s cubic-bezier(.2,.85,.2,1) forwards!important;filter:contrast(1.35) saturate(1.35) brightness(.72) drop-shadow(-18px 4px 7px rgba(0,0,0,.55));transition:.3s;perspective:700px}
span.sprite.door.open::after{content:"🚪";position:absolute;left:-34px;top:0;filter:brightness(0) opacity(.92);transform:skewY(-5deg) scaleX(.72);z-index:-1}
@keyframes kimusDoorOpen062{0%{transform:translateX(0) rotateY(0deg) scale(1);opacity:1}35%{transform:translateX(-14px) rotateY(80deg) scaleX(.72);opacity:.98}70%{transform:translateX(-34px) rotateY(165deg) scaleX(.38);opacity:.9}100%{transform:translateX(-42px) rotateY(360deg) scaleX(.28);opacity:.72}}

/* Parche 064: bloques destructibles, selector rapido de armas y minimapa reducido */
.hud-weapon{
    width:58px!important;
    height:58px!important;
    border-radius:999px!important;
    display:grid!important;
    place-items:center!important;
    background:#16223a!important;
    color:#ffe66d!important;
    border:1px solid #ffe66d!important;
    font-size:25px!important;
    box-shadow:0 8px 18px rgba(0,0,0,.35)!important;
}
.weapon-quick-panel{
    position:fixed;
    right:76px;
    top:210px;
    z-index:60;
    background:rgba(8,17,34,.96);
    border:1px solid rgba(114,198,255,.42);
    border-radius:16px;
    padding:12px;
    box-shadow:0 18px 40px rgba(0,0,0,.55);
    color:#eafff5;
}
.weapon-quick-panel[hidden]{display:none!important}
.weapon-quick-box{display:grid;gap:10px;min-width:190px}
.weapon-quick-box strong{font-size:13px;color:#ffe66d;text-transform:uppercase;letter-spacing:.04em}
.weapon-quick-grid{display:grid;grid-template-columns:repeat(4,42px);gap:8px}
.weapon-quick-grid button{
    width:42px;
    height:42px;
    border-radius:12px;
    background:#0c172a;
    border:1px solid rgba(114,198,255,.38);
    color:#fff;
    font-size:23px;
    cursor:pointer;
}
.weapon-quick-grid button.active{background:#2864df;border-color:#ffe66d;box-shadow:0 0 0 2px rgba(255,230,109,.22)}
.minimap-panel{width:92px!important;padding:3px!important}
.minimap-grid{width:82px!important;height:57px!important}
.mini-canvas{width:82px!important;height:57px!important}
.minimap-head{font-size:6px!important;margin-bottom:2px!important}
@media(max-width:700px){
    .hud-weapon{width:58px!important;height:58px!important;font-size:25px!important}
    .weapon-quick-panel{right:72px;top:230px}
    .minimap-panel{width:78px!important}
    .minimap-grid{width:70px!important;height:49px!important}
    .mini-canvas{width:70px!important;height:49px!important}
}
@media(max-width:420px){
    .hud-weapon{width:54px!important;height:54px!important;font-size:22px!important}
    .weapon-quick-panel{right:64px;top:220px}
    .minimap-panel{width:72px!important}
    .minimap-grid{width:64px!important;height:44px!important}
    .mini-canvas{width:64px!important;height:44px!important}
}
/* Fin parche 064 */


/* Parche 065: puertas con fondo negro, HUD legible y selector de armas cerrable */
.top-life{
    width:118px!important;
    height:13px!important;
    border-width:2px!important;
}
.top-life-wrap small,
.money-inline,
.gem-inline{
    font-size:15px!important;
    font-weight:900!important;
    line-height:1.1!important;
    text-shadow:0 2px 5px rgba(0,0,0,.5)!important;
}
.player-pill{
    gap:12px!important;
}
span.sprite.door{
    z-index:9999999!important;
    position:absolute!important;
    inset:auto!important;
    left:0!important;
    top:0!important;
    transition:.3s!important;
    transform-origin:left center!important;
    backface-visibility:hidden!important;
}
span.sprite.door.open{
    transform:rotateY(360deg) translateX(-13px) scaleX(.78)!important;
    filter:contrast(1.5) saturate(1.5) brightness(.5) drop-shadow(-12px 5px 6px rgba(0,0,0,.62))!important;
    transition:.3s!important;
    z-index:9999999!important;
}
span.sprite.door.black{
    filter:brightness(0) opacity(.95)!important;
    right:0!important;
    left:0!important;
    top:0!important;
    margin-left:0!important;
    position:absolute!important;
    transform:none!important;
    z-index:0!important;
    pointer-events:none!important;
}
.door-open-hole{display:none!important}
.weapon-quick-panel{
    z-index:99999!important;
    right:84px!important;
    top:190px!important;
    min-width:240px!important;
}
.weapon-quick-head{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-bottom:8px!important;
}
.weapon-quick-head button{
    width:34px!important;
    height:34px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.24)!important;
    background:#12213a!important;
    color:#fff!important;
    cursor:pointer!important;
    font-weight:900!important;
}
.weapon-quick-grid button{
    position:relative!important;
}
.weapon-quick-grid button small{
    position:absolute!important;
    right:3px!important;
    bottom:1px!important;
    font-size:11px!important;
    color:#ffe66d!important;
}
@media(max-width:700px){
    .top-life{width:74px!important;height:12px!important}
    .top-life-wrap small,.money-inline,.gem-inline{font-size:12px!important}
    .weapon-quick-panel{right:70px!important;top:210px!important;min-width:220px!important}
}
/* Fin parche 065 */

/* Parche 066: daño flotante, popups y letreros */
.floater-damage{
    color:#ff1f1f!important;
    font-weight:900!important;
    font-size:clamp(18px,2.7vw,30px)!important;
    text-shadow:0 2px 0 #5b0000,0 0 10px rgba(255,0,0,.95)!important;
    animation:kimusDamageFloat 950ms ease-out forwards!important;
    pointer-events:none!important;
}
@keyframes kimusDamageFloat{
    0%{opacity:0;transform:translate(-50%,0) scale(.85)}
    14%{opacity:1;transform:translate(-50%,-6px) scale(1.18)}
    100%{opacity:0;transform:translate(-50%,-42px) scale(.9)}
}
.enemy-info-popup,.sign-text-popup{
    position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;background:rgba(2,8,18,.45);backdrop-filter:blur(2px);
}
.enemy-info-popup[hidden],.sign-text-popup[hidden]{display:none!important}
.enemy-info-box,.sign-text-box{
    width:min(340px,calc(100vw - 32px));background:#07162c;border:2px solid #3b64a0;border-radius:18px;color:#fff;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.65);font-family:inherit;position:relative;
}
.enemy-info-box strong,.sign-text-box strong{display:block;color:#ffe84a;font-size:20px;margin:0 38px 12px 0}
.enemy-info-box p,.sign-text-box p{margin:8px 0;font-size:16px;line-height:1.35;color:#eaf2ff}
.enemy-close,.sign-close{
    position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:999px;border:1px solid #5578aa;background:#11284c;color:#fff;font-weight:900;cursor:pointer;
}
.sprite.enemy{cursor:pointer;filter:drop-shadow(0 4px 8px rgba(0,0,0,.6))}


/* Parche 067: puerta visible antes de entrar, respawn y comida curativa */
span.sprite.door{
    z-index:9999999!important;
    position:absolute!important;
    transform-style:preserve-3d!important;
    backface-visibility:visible!important;
}
span.sprite.door.open{
    transform-origin:left center!important;
    animation:kimusDoorOpen067 1.38s cubic-bezier(.18,.82,.2,1) forwards!important;
    filter:contrast(1.55) saturate(1.55) brightness(.48) drop-shadow(-14px 6px 8px rgba(0,0,0,.72))!important;
    transition:transform .3s ease, filter .3s ease!important;
    z-index:9999999!important;
}
span.sprite.door.black{
    filter:brightness(0) opacity(.98)!important;
    right:0!important;
    left:0!important;
    top:0!important;
    margin-left:0!important;
    position:absolute!important;
    transform:none!important;
    z-index:0!important;
    pointer-events:none!important;
}
@keyframes kimusDoorOpen067{
    0%{transform:translateX(0) rotateY(0deg) scaleX(1);opacity:1}
    18%{transform:translateX(-5px) rotateY(45deg) scaleX(.92);opacity:1}
    48%{transform:translateX(-17px) rotateY(120deg) scaleX(.72);opacity:.97}
    78%{transform:translateX(-31px) rotateY(245deg) scaleX(.54);opacity:.86}
    100%{transform:translateX(-42px) rotateY(360deg) scaleX(.38);opacity:.72}
}
.sprite.item.fruit{filter:drop-shadow(0 0 8px rgba(90,255,90,.45))}
/* Fin parche 067 */

/* KIMUS 073 - Lobby y reproductor musical */
.music-player-button{
    position:fixed;
    left:50%;
    bottom:calc(env(safe-area-inset-bottom,0px) + 106px);
    transform:translateX(-50%);
    z-index:9200;
    border:2px solid rgba(255,255,255,.9);
    border-radius:999px;
    background:linear-gradient(135deg,#111827,#2f1b68,#111827);
    color:#fff;
    font-weight:900;
    padding:9px 16px;
    box-shadow:0 10px 26px rgba(0,0,0,.35);
}
.music-player-modal{
    position:fixed;
    inset:0;
    z-index:9800;
    background:rgba(0,0,0,.55);
    display:grid;
    place-items:center;
    padding:16px;
}
.music-player-modal[hidden]{display:none!important;}
.music-player-box{
    width:min(680px,96vw);
    max-height:86vh;
    overflow:auto;
    background:#fff;
    color:#111827;
    border-radius:20px;
    padding:14px;
    box-shadow:0 24px 80px rgba(0,0,0,.48);
}
.music-player-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.music-player-head button,.music-search-row button,.music-player-controls button,.music-item button,.music-result button{
    border:0;
    border-radius:12px;
    background:#111827;
    color:#fff;
    font-weight:900;
    padding:8px 10px;
}
.music-search-row{display:flex;gap:8px;margin-bottom:10px;}
.music-search-row input{flex:1;min-width:0;border:2px solid #ddd;border-radius:12px;padding:10px;font-size:15px;}
.music-player-controls{display:flex;gap:8px;justify-content:center;margin:10px 0;}
.music-results,.music-playlist{display:grid;gap:8px;margin-bottom:12px;}
.music-result,.music-item{display:flex;align-items:center;gap:10px;border:1px solid #ddd;border-radius:14px;padding:8px;background:#f8fafc;}
.music-result img{width:96px;height:54px;object-fit:cover;border-radius:10px;background:#ddd;}
.music-result div{display:grid;gap:6px;flex:1;}
.music-item span{flex:1;font-weight:800;}
.music-item.active{border-color:#7c3aed;background:#ede9fe;}
.music-empty{margin:0;color:#6b7280;font-weight:700;}
.youtube-mini-player{width:1px;height:1px;overflow:hidden;position:absolute;opacity:0;pointer-events:none;}
.map-lobby .world-grid{background:#74b96a;}
.map-lobby .floor-path{background:#b18f5d!important;}
@media (max-width:640px){
    .music-player-button{bottom:calc(env(safe-area-inset-bottom,0px) + 92px);font-size:13px;padding:8px 12px;}
    .music-result img{width:74px;height:42px;}
}

/* KIMUS 074 - Botón musical sobre minimapa y login Google del reproductor */
.music-player-button{
    position:fixed!important;
    right:14px!important;
    top:calc(82px + env(safe-area-inset-top,0px) + 8px)!important;
    left:auto!important;
    bottom:auto!important;
    transform:none!important;
    z-index:9300!important;
    width:42px!important;
    height:42px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    border-radius:50%!important;
    font-size:22px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-indent:0!important;
    white-space:nowrap!important;
    color:#fff!important;
    background:radial-gradient(circle at 30% 25%,#a78bfa,#4c1d95 58%,#111827)!important;
    border:2px solid rgba(255,255,255,.88)!important;
    box-shadow:0 8px 22px rgba(0,0,0,.38),0 0 0 3px rgba(124,58,237,.22)!important;
}
.music-player-button:hover{filter:brightness(1.08);}
.music-login-panel,.music-app-panel{min-height:220px;}
.music-login-card{
    min-height:300px;
    display:grid;
    place-items:center;
    text-align:center;
    gap:12px;
    padding:24px 14px;
    border-radius:18px;
    color:#fff;
    background:linear-gradient(135deg,#111827,#312e81,#7c2d12);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.music-login-card h3{margin:0;max-width:420px;font-size:20px;line-height:1.25;}
.music-login-card p{margin:0;max-width:420px;color:rgba(255,255,255,.82);font-weight:700;}
.music-login-logo{font-size:42px;font-weight:1000;letter-spacing:.5px;}
.google-login-button{min-height:44px;display:grid;place-items:center;}
.music-login-error{min-height:18px;color:#fecaca;font-weight:900;}
.music-profile{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:8px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#f8fafc;
    margin-bottom:10px;
}
.music-profile-user{display:flex;align-items:center;gap:10px;min-width:0;}
.music-profile-user img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#e5e7eb;}
.music-profile-user span{display:grid;min-width:0;}
.music-profile-user b,.music-profile-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:330px;}
.music-profile-user small{color:#475569;font-weight:800;}
.music-profile button{
    border:0;
    border-radius:12px;
    background:#7f1d1d;
    color:#fff;
    font-weight:900;
    padding:8px 10px;
}
.music-small-list{max-height:120px;overflow:auto;}
.music-item button[data-music-fav]{background:#92400e;}
@media (max-width:640px){
    .music-player-button{right:10px!important;top:calc(82px + env(safe-area-inset-top,0px) + 6px)!important;width:38px!important;height:38px!important;font-size:20px!important;}
    .music-profile{align-items:flex-start;flex-direction:column;}
    .music-profile-user b,.music-profile-user small{max-width:250px;}
}

/* KIMUS 075 - Música libre, botón esquina superior izquierda y ajustes movimiento */
.music-player-button{
    left:calc(4px + env(safe-area-inset-left,0px))!important;
    top:calc(4px + env(safe-area-inset-top,0px))!important;
    right:auto!important;
    bottom:auto!important;
    width:46px!important;
    height:46px!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    font-size:24px!important;
    text-indent:0!important;
    z-index:9500!important;
}
.music-optional-login{margin-bottom:10px;}
.music-sync-note{
    display:grid;
    gap:7px;
    padding:9px;
    border-radius:14px;
    border:1px solid #dbeafe;
    background:#eff6ff;
    color:#0f172a;
    font-weight:800;
}
.music-sync-note span{font-size:12px;color:#334155;line-height:1.25;}
.music-profile-guest{
    width:42px;
    height:42px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#111827;
    color:#fff;
    font-size:24px;
}
@media(max-width:640px){
    .music-player-button{
        left:calc(3px + env(safe-area-inset-left,0px))!important;
        top:calc(3px + env(safe-area-inset-top,0px))!important;
        right:auto!important;
        width:42px!important;
        height:42px!important;
        font-size:22px!important;
    }
}


/* KIMUS 076 - Lobby accesible, HUD centrado y etiquetas de puertas */
.music-player-button{
    left:calc(4px + env(safe-area-inset-left,0px))!important;
    top:calc(4px + env(safe-area-inset-top,0px))!important;
    right:auto!important;
    bottom:auto!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    padding:0!important;
    border-radius:999px!important;
    font-size:24px!important;
    line-height:1!important;
    display:grid!important;
    place-items:center!important;
    z-index:9800!important;
}
.top-hud{
    left:64px!important;
    right:82px!important;
    top:calc(8px + env(safe-area-inset-top,0px))!important;
    justify-items:center!important;
}
.top-hud .player-pill{
    justify-self:center!important;
    width:min(470px,100%)!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    padding:8px 12px!important;
}
.player-name-big{
    max-width:110px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
.hud-avatar{
    display:grid!important;
    place-items:center!important;
    font-size:26px!important;
}
.sprite.lobby-door-label{
    left:50%!important;
    top:auto!important;
    bottom:calc(100% + 2px)!important;
    width:auto!important;
    height:auto!important;
    min-width:max-content!important;
    transform:translateX(-50%)!important;
    padding:2px 6px!important;
    border-radius:999px!important;
    background:rgba(7,13,25,.86)!important;
    border:1px solid rgba(255,230,109,.82)!important;
    color:#ffe66d!important;
    font-family:var(--font)!important;
    font-size:8px!important;
    font-weight:1000!important;
    line-height:1.05!important;
    text-shadow:none!important;
    box-shadow:0 4px 10px rgba(0,0,0,.35)!important;
    pointer-events:none!important;
    z-index:999999!important;
}
@media(max-width:700px){
    .music-player-button{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;font-size:23px!important;}
    .top-hud{left:56px!important;right:76px!important;top:calc(8px + env(safe-area-inset-top,0px))!important;}
    .top-hud .player-pill{width:min(330px,100%)!important;gap:8px!important;padding:7px 8px!important;}
    .player-name-big{max-width:62px!important;}
    .top-life{width:72px!important;}
    .money-inline,.gem-inline,.top-life-wrap small{font-size:12px!important;}
}
@media(max-width:390px){
    .top-hud{left:52px!important;right:70px!important;}
    .top-hud .player-pill{gap:6px!important;padding:6px 7px!important;}
    .player-name-big{max-width:50px!important;}
    .top-life{width:60px!important;}
    .money-inline,.gem-inline,.top-life-wrap small{font-size:11px!important;}
}

/* KIMUS 077 - Zona segura, música persistente y volumen */
.music-volume-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin:8px auto 12px;
    padding:8px 10px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#f8fafc;
    color:#111827;
    font-weight:900;
}
.music-volume-row label{white-space:nowrap;font-size:13px;}
.music-volume-row input[type="range"]{flex:1;accent-color:#7c3aed;min-width:120px;}
.music-volume-row span{min-width:42px;text-align:right;font-size:13px;color:#334155;}
.player-invulnerable::after{
    content:"🛡️";
    position:absolute;
    right:-8px;
    top:-10px;
    font-size:16px;
    animation:shieldPulse .75s ease-in-out infinite alternate;
    filter:drop-shadow(0 0 8px rgba(96,165,250,.95));
}
@keyframes shieldPulse{from{transform:scale(.9);opacity:.72}to{transform:scale(1.12);opacity:1}}
@media(max-width:640px){
    .music-volume-row{gap:7px;padding:7px 8px;}
    .music-volume-row label{font-size:12px;}
    .music-volume-row input[type="range"]{min-width:80px;}
}


/* Ajuste 7.8.0: listas musicales, menú lateral colapsable y lobby lineal. */
.music-player-box{position:relative;}
.music-player-head{position:sticky;top:0;z-index:20;background:rgba(8,13,28,.98);backdrop-filter:blur(8px);}
.music-playlist-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0 10px;}
.music-playlist-tabs button{border-color:#48648d;background:#111b2b;color:#cfe3ff;padding:8px 6px;border-radius:999px;font-size:13px;}
.music-playlist-tabs button.active{background:#2f68f0;color:#fff;border-color:#90b7ff;box-shadow:0 0 14px rgba(47,104,240,.38);}
.music-player-controls{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
.music-player-controls button{min-width:44px;}
#btnMusicGameMute{min-width:92px;border-color:#ffd45f;color:#ffe9a6;background:#201807;}
#btnMusicGameMute.muted{border-color:#ff6b7a;color:#ffd7dc;background:#271018;}
.hud-actions{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important;}
.hud-actions button:not(#btnOptions){opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-10px) scale(.78)!important;max-height:0!important;margin:0!important;transition:opacity .18s ease,transform .18s ease,visibility .18s ease,max-height .18s ease!important;}
.hud-actions.expanded button:not(#btnOptions){opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateY(0) scale(1)!important;max-height:70px!important;}
.hud-actions #btnOptions{order:0!important;display:grid!important;place-items:center!important;}
.hud-avatar{order:1!important}.hud-chat{order:2!important}.hud-map{order:3!important}.hud-inventory{order:4!important}.hud-reload{order:5!important}.hud-weapon{order:6!important}
.sprite.door.door-locked{opacity:.34!important;filter:grayscale(1) brightness(.55)!important;}
.sprite.lobby-door-label.locked,.sprite.lobby-door-req.locked{opacity:.62!important;filter:grayscale(.5)!important;}
.sprite.lobby-door-req{left:50%!important;top:calc(100% + 2px)!important;width:auto!important;height:auto!important;min-width:max-content!important;transform:translateX(-50%)!important;padding:2px 6px!important;border-radius:999px!important;background:rgba(7,13,25,.86)!important;border:1px solid rgba(119,203,255,.75)!important;color:#d9f6ff!important;font-size:8px!important;font-weight:1000!important;line-height:1.05!important;text-shadow:none!important;box-shadow:0 4px 10px rgba(0,0,0,.35)!important;pointer-events:none!important;z-index:999999!important;}
.lobby-access-notice{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:rgba(0,0,0,.34);padding:18px;}
.lobby-access-card{width:min(360px,92vw);background:linear-gradient(135deg,#101a34,#1b1140);border:3px solid #ffe66d;border-radius:22px;padding:18px;text-align:center;color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.5);}
.lobby-access-card strong{display:block;font-size:22px;color:#ffe66d;margin-bottom:8px;}.lobby-access-card p{margin:0 0 12px;color:#dcecff;font-size:14px}.lobby-access-card button{width:100%;background:#2f68f0;color:#fff;border-color:#8db5ff;}
@media(max-width:700px){.hud-actions{right:6px!important;top:calc(112px + env(safe-area-inset-top,0px))!important}.music-player-controls button{font-size:13px;padding:8px 9px}.music-playlist-tabs button{font-size:12px;padding:7px 4px}}
/* Fin ajuste 7.8.0 */
/* Ajuste 7.8.1: ocultamiento real de botones laterales colapsados. */
.hud-actions button:not(#btnOptions){overflow:hidden!important;padding-top:0!important;padding-bottom:0!important;border-width:0!important;}
.hud-actions.expanded button:not(#btnOptions){padding:0!important;border-width:2px!important;}
/* Fin ajuste 7.8.1 */

/* KIMUS 079 - zona segura, Google opcional y audio chat */
.player-safe-zone::after,
.player-invulnerable::after{
    content:"🛡️";
    position:absolute;
    right:-8px;
    top:-10px;
    font-size:16px;
    animation:shieldPulse .75s ease-in-out infinite alternate;
    filter:drop-shadow(0 0 8px rgba(96,165,250,.95));
    pointer-events:none;
}
.music-google-toggle{
    width:100%;
    border-radius:16px;
    padding:12px 14px;
    background:#111827;
    color:#dbeafe;
    border:2px solid #48648d;
    font-weight:900;
    cursor:pointer;
}
.music-google-box[hidden]{display:none!important;}
.music-login-error:empty{display:none!important;}
.chat-form{grid-template-columns:minmax(0,1fr) auto auto;}
.chat-audio-btn{
    min-width:44px;
    padding:0 10px;
    border-radius:12px;
    font-size:20px;
    border:2px solid rgba(114,198,255,.55);
    background:#101b2b;
    color:#eafff5;
}
.chat-audio-btn.recording{
    background:#7f1d1d;
    border-color:#ff6b7a;
    color:#fff;
    animation:recordPulse .7s ease-in-out infinite alternate;
}
@keyframes recordPulse{from{transform:scale(.96);filter:brightness(.9)}to{transform:scale(1.05);filter:brightness(1.3)}}
.chat-audio audio{width:100%;max-width:220px;height:34px;display:block;}
.hud-actions{
    top:calc(4px + env(safe-area-inset-top,0px))!important;
    right:calc(6px + env(safe-area-inset-right,0px))!important;
}
@media(max-width:700px){
    .hud-actions{top:calc(4px + env(safe-area-inset-top,0px))!important;right:calc(5px + env(safe-area-inset-right,0px))!important;}
}


/* Parche 080: mensajes flotantes de regla/estado arriba, no encima de los controles. */
.toast-zone{
    position:absolute!important;
    top:calc(96px + env(safe-area-inset-top))!important;
    bottom:auto!important;
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    width:min(340px,54vw)!important;
    max-width:calc(100vw - 190px)!important;
    z-index:19!important;
    display:grid!important;
    justify-items:center!important;
    gap:4px!important;
    pointer-events:none!important;
}
.toast-zone .notice{
    max-width:100%!important;
    width:auto!important;
    padding:7px 12px!important;
    border-radius:999px!important;
    line-height:1.15!important;
    font-size:clamp(11px,2.1vw,14px)!important;
    background:rgba(8,19,28,.86)!important;
}
@media(max-width:700px){
    .toast-zone{
        top:calc(112px + env(safe-area-inset-top))!important;
        width:min(330px,62vw)!important;
        max-width:calc(100vw - 150px)!important;
    }
}


/* Parche 081: depuración juego, menú lateral visible parcial y reproductor. */
.hud-actions{top:calc(8px + env(safe-area-inset-top,0px))!important;right:calc(8px + env(safe-area-inset-right,0px))!important;gap:6px!important;}
.hud-actions button{width:45px!important;height:45px!important;min-width:45px!important;min-height:45px!important;font-size:20px!important;padding:0!important;border-width:2px!important;max-height:45px!important;}
.hud-actions button:not(#btnOptions){opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-8px) scale(.82)!important;max-height:0!important;border-width:0!important;}
.hud-actions #btnChat,.hud-actions #btnInventoryDirect,.hud-actions #btnWeaponQuick{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;max-height:45px!important;border-width:2px!important;}
.hud-actions.expanded button:not(#btnOptions){opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;max-height:45px!important;border-width:2px!important;}
.hud-actions #btnOptions{order:0!important}.hud-actions #btnInventoryDirect{order:1!important}.hud-actions #btnChat{order:2!important}.hud-actions #btnWeaponQuick{order:3!important}.hud-actions #btnAvatarQuick{order:4!important}.hud-actions #btnMapDirect{order:5!important}.hud-actions #btnReloadGame{order:6!important}
.music-search-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;}
.music-clear-search{min-width:42px!important;width:42px!important;padding:8px 0!important;border-color:#ff6b7a!important;color:#fff!important;background:#38111a!important;}
.music-player-controls button.active,.music-playlist-tabs button.active{background:#2f68f0!important;color:#fff!important;border-color:#90b7ff!important;box-shadow:0 0 14px rgba(47,104,240,.45)!important;}
.toast-zone{top:calc(74px + env(safe-area-inset-top,0px))!important;bottom:auto!important;left:50%!important;transform:translateX(-50%)!important;width:min(420px,64vw)!important;max-width:calc(100vw - 126px)!important;z-index:22!important;}
.toast-zone .notice{font-size:clamp(11px,2.2vw,15px)!important;}
@media(max-width:700px){.hud-actions{top:calc(6px + env(safe-area-inset-top,0px))!important;right:calc(6px + env(safe-area-inset-right,0px))!important}.hud-actions button{width:45px!important;height:45px!important;font-size:20px!important}.toast-zone{top:calc(78px + env(safe-area-inset-top,0px))!important;width:min(360px,60vw)!important;max-width:calc(100vw - 122px)!important}.music-search-row{grid-template-columns:minmax(0,1fr) auto auto!important;}}
/* Fin parche 081 */

/* KIMUS 082 - Lobby mejorado, puertas más claras y menú estable */
span.sprite.door{
    transform-style:preserve-3d!important;
    transform-origin:left center!important;
    will-change:transform,filter,opacity!important;
}
span.sprite.door.open{
    animation:kimusDoorOpen082 1.45s cubic-bezier(.16,.82,.2,1) forwards!important;
    filter:contrast(1.55) saturate(1.55) brightness(.54) drop-shadow(-18px 8px 9px rgba(0,0,0,.7))!important;
    z-index:9999999!important;
}
span.sprite.door.open + span.sprite.door.black,
span.sprite.door.black{
    filter:brightness(0) opacity(.98)!important;
    transform:none!important;
    z-index:0!important;
}
@keyframes kimusDoorOpen082{
    0%{transform:translateX(0) rotateY(0deg) scaleX(1);opacity:1}
    20%{transform:translateX(-5px) rotateY(42deg) scaleX(.95);opacity:1}
    48%{transform:translateX(-18px) rotateY(118deg) scaleX(.74);opacity:.98}
    76%{transform:translateX(-34px) rotateY(248deg) scaleX(.52);opacity:.9}
    100%{transform:translateX(-48px) rotateY(360deg) scaleX(.34);opacity:.78}
}
.sprite.lobby-door-label{
    font-size:9px!important;
    padding:3px 7px!important;
    background:rgba(5,10,22,.92)!important;
    border-color:#ffe66d!important;
    color:#fff2a8!important;
}
.sprite.lobby-door-req{
    font-size:8px!important;
    background:rgba(7,23,38,.92)!important;
}
.sprite.lobby-guide,
.sprite.lobby-decor{
    filter:drop-shadow(0 5px 6px rgba(0,0,0,.45));
}

/* KIMUS 083 - Lobby lineal con requisitos al lado derecho de cada puerta */
.sprite.lobby-door-label{
    bottom:calc(100% + 4px)!important;
    font-size:9px!important;
    padding:3px 8px!important;
    background:rgba(5,10,22,.94)!important;
    border:1px solid rgba(255,230,109,.9)!important;
    color:#fff2a8!important;
    box-shadow:0 5px 12px rgba(0,0,0,.42)!important;
}
.sprite.lobby-door-req-side,
.sprite.lobby-door-req{
    left:0!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    min-width:max-content!important;
    max-width:none!important;
    padding:3px 7px!important;
    border-radius:999px!important;
    background:rgba(5,18,34,.94)!important;
    border:1px solid rgba(119,203,255,.86)!important;
    color:#d9f6ff!important;
    font-size:8px!important;
    font-weight:1000!important;
    line-height:1.05!important;
    text-shadow:0 1px 2px rgba(0,0,0,.55)!important;
    box-shadow:0 5px 12px rgba(0,0,0,.42)!important;
    pointer-events:none!important;
    z-index:999999!important;
    white-space:nowrap!important;
}
.sprite.lobby-door-label.locked,
.sprite.lobby-door-req.locked{
    opacity:.48!important;
    filter:grayscale(.65) brightness(.75)!important;
}
.sprite.door.door-locked{
    opacity:.38!important;
    filter:grayscale(1) brightness(.55)!important;
}
/* Fin KIMUS 083 */

/* KIMUS 084 - Corrección real puertas lobby, cartel único y apertura limpia */
span.sprite.door::after{
    content:none!important;
    display:none!important;
}
span.sprite.door{
    position:absolute!important;
    left:0!important;
    top:0!important;
    z-index:30!important;
    transform-origin:left center!important;
    transform-style:preserve-3d!important;
    backface-visibility:visible!important;
    will-change:transform,filter,opacity!important;
}
span.sprite.door.black{
    opacity:0!important;
    visibility:hidden!important;
    position:absolute!important;
    left:0!important;
    top:0!important;
    right:auto!important;
    margin-left:0!important;
    z-index:1!important;
    transform:none!important;
    filter:brightness(0) opacity(0)!important;
    pointer-events:none!important;
}
span.sprite.door.open{
    z-index:40!important;
    animation:kimusDoorOpen084 1.25s cubic-bezier(.18,.82,.2,1) forwards!important;
    filter:contrast(1.42) saturate(1.35) brightness(.7) drop-shadow(-12px 6px 8px rgba(0,0,0,.62))!important;
}
span.sprite.door.open + span.sprite.door.black{
    opacity:1!important;
    visibility:visible!important;
    filter:brightness(0) opacity(.92)!important;
    z-index:0!important;
}
@keyframes kimusDoorOpen084{
    0%{transform:translateX(0) rotateY(0deg) scaleX(1);opacity:1}
    25%{transform:translateX(-5px) rotateY(52deg) scaleX(.92);opacity:1}
    55%{transform:translateX(-14px) rotateY(125deg) scaleX(.72);opacity:.98}
    80%{transform:translateX(-23px) rotateY(245deg) scaleX(.52);opacity:.9}
    100%{transform:translateX(-31px) rotateY(340deg) scaleX(.42);opacity:.82}
}
.sprite.lobby-door-sign,
.sprite.lobby-door-label{
    left:50%!important;
    bottom:calc(100% + 6px)!important;
    top:auto!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:1px!important;
    width:max-content!important;
    min-width:48px!important;
    max-width:92px!important;
    height:auto!important;
    padding:4px 8px!important;
    border-radius:12px!important;
    background:rgba(5,10,22,.95)!important;
    border:2px solid rgba(255,230,109,.9)!important;
    box-shadow:0 7px 14px rgba(0,0,0,.45)!important;
    color:#fff4a8!important;
    text-align:center!important;
    white-space:normal!important;
    pointer-events:none!important;
    z-index:999999!important;
    line-height:1.05!important;
}
.sprite.lobby-door-sign b,
.sprite.lobby-door-label b{
    display:block!important;
    font-size:9px!important;
    font-weight:1000!important;
    color:#fff4a8!important;
    max-width:76px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.sprite.lobby-door-sign small,
.sprite.lobby-door-label small{
    display:block!important;
    font-size:7px!important;
    font-weight:1000!important;
    color:#d9f6ff!important;
}
.sprite.lobby-door-sign.locked,
.sprite.lobby-door-label.locked{
    opacity:.58!important;
    filter:grayscale(.6) brightness(.8)!important;
}
.sprite.lobby-door-req-side,
.sprite.lobby-door-req{
    display:none!important;
}
/* Fin KIMUS 084 */


/* KIMUS 085 - barra de vida de enemigos y zona segura reforzada */
.sprite.enemy{
    overflow:visible!important;
    display:grid!important;
    place-items:center!important;
}
.sprite.enemy .enemy-emoji{
    display:block;
    line-height:1;
    transform:translateY(2px);
}
.enemy-hpbar{
    position:absolute;
    left:50%;
    top:-18px;
    transform:translateX(-50%);
    width:44px;
    height:8px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.75);
    background:rgba(35,3,12,.88);
    box-shadow:0 2px 6px rgba(0,0,0,.45);
    overflow:hidden;
    pointer-events:none;
    z-index:999999;
}
.enemy-hpbar i{
    display:block;
    height:100%;
    width:100%;
    border-radius:999px;
    background:linear-gradient(90deg,#ff405d,#ffd95a,#5dff7d);
    transition:width .18s ease;
}
.enemy-hpbar em{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    font-size:6px;
    line-height:1;
    font-style:normal;
    font-weight:1000;
    color:#fff;
    text-shadow:0 1px 2px #000,0 0 3px #000;
}
.sprite.player-safe-zone::before{
    content:"";
    position:absolute;
    inset:-7px;
    border-radius:50%;
    border:2px solid rgba(96,165,250,.72);
    box-shadow:0 0 18px rgba(96,165,250,.55);
    pointer-events:none;
}
/* Fin KIMUS 085 */

/* Ajuste 5.9.0: editor de objetos, animaciones y escala configurable */
.sprite.obj-anim-pulse{animation:objectPulse 1.15s ease-in-out infinite!important}
.sprite.obj-anim-bounce{animation:objectBounce 1.1s ease-in-out infinite!important}
.sprite.obj-anim-shake{animation:objectShake .45s linear infinite!important}
.sprite.obj-anim-spin{animation:objectSpin 1.6s linear infinite!important}
.sprite.obj-anim-glow{filter:drop-shadow(0 0 12px rgba(255,235,112,.9)) saturate(1.35)!important;animation:objectGlow 1.4s ease-in-out infinite!important}
.sprite[style*="--obj-scale"]{transform:scale(var(--obj-scale))}
.sprite.enemy[style*="--obj-scale"]{transform:scale(var(--obj-scale))}
.enemy-hpbar em{font-size:9px;min-width:22px;text-align:center;line-height:1;letter-spacing:.02em}
@keyframes objectPulse{0%,100%{transform:scale(var(--obj-scale,1))}50%{transform:scale(calc(var(--obj-scale,1) * 1.16))}}
@keyframes objectBounce{0%,100%{transform:translateY(0) scale(var(--obj-scale,1))}50%{transform:translateY(-12%) scale(var(--obj-scale,1))}}
@keyframes objectShake{0%,100%{transform:translateX(0) scale(var(--obj-scale,1))}25%{transform:translateX(-4%) scale(var(--obj-scale,1))}75%{transform:translateX(4%) scale(var(--obj-scale,1))}}
@keyframes objectSpin{to{transform:rotate(360deg) scale(var(--obj-scale,1))}}
@keyframes objectGlow{0%,100%{opacity:.92}50%{opacity:1;filter:drop-shadow(0 0 18px rgba(255,235,112,1)) saturate(1.6)}}

/* KIMUS 093 · señales y pasillo de minijuegos */
.sprite.decor-minigame-icon{
    font-size:calc(var(--cell-px) * 1.05)!important;
    filter:drop-shadow(0 8px 8px rgba(0,0,0,.45)) drop-shadow(0 0 12px rgba(255,230,95,.55));
    transform:translateY(-.55em);
    pointer-events:none;
}
.sprite.decor-minigame-icon .mini-game-icon-emoji{
    display:inline-grid;
    place-items:center;
    width:1.35em;
    height:1.35em;
    border-radius:50%;
    background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.35),rgba(20,14,40,.92));
    border:.08em solid rgba(255,232,114,.92);
    box-shadow:0 0 18px rgba(255,221,80,.28);
}
.sprite.decor-minigame-sign{
    min-width:calc(var(--cell-px) * 5.5);
    max-width:calc(var(--cell-px) * 7.2);
    transform:translate(-.25em,-.8em);
    display:flex!important;
    flex-direction:column;
    align-items:flex-start;
    gap:.08em;
    padding:.33em .52em;
    border-radius:.65em;
    background:linear-gradient(135deg,rgba(6,10,25,.96),rgba(43,22,82,.94));
    border:.09em solid rgba(118,255,225,.92);
    color:#fff6a8;
    text-shadow:0 .08em 0 #000;
    font-size:calc(var(--cell-px) * .32)!important;
    line-height:1.08;
    box-shadow:0 .4em 1.2em rgba(0,0,0,.45),0 0 .75em rgba(118,255,225,.22);
    white-space:normal!important;
    pointer-events:none;
}
.sprite.decor-minigame-sign b{
    color:#fff;
    font-size:1.12em;
    letter-spacing:.02em;
}
.sprite.decor-minigame-sign small{
    display:block;
    color:#dffcff;
    font-size:.88em;
}
.sprite.decor-minigame-sign .mini-game-desc{
    color:#c6b7ff;
    opacity:.92;
}
.map-minijuegos .floor-layer,
.map-minijuegos .floor-patch{
    box-shadow:inset 0 0 35px rgba(95,64,180,.24);
}
.map-minijuegos .sprite.door{
    filter:drop-shadow(0 .35em .22em rgba(0,0,0,.45)) drop-shadow(0 0 .45em rgba(255,224,105,.25));
}
