.cave-page{min-height:100vh;background:linear-gradient(180deg,#173f38 0 235px,var(--cream) 235px)}
.cave-page .shell{max-width:680px}.cave-page .challenge-head{color:#fff}.cave-page .instruction{color:#e1eee9}
.cave-scene{position:relative;overflow:hidden;width:100%;aspect-ratio:4/5;border:8px solid #fff;border-radius:28px;background:center/cover no-repeat;box-shadow:0 18px 50px #173d3033;touch-action:none}.cave-walk{background-image:url('assets/cueva-david-saul-v1.webp')}.cave-cut{background-image:url('assets/cueva-manto-v1.webp')}
.cave-step{position:absolute;display:grid;place-items:center;width:58px;height:58px;border:5px solid #fff;border-radius:50%;background:#315e51cc;color:#fff;font-size:1.15rem;font-weight:950;box-shadow:0 7px 18px #0005;opacity:.55}.cave-step.next{background:#f6bd4c;color:#513900;opacity:1;animation:cavePulse .85s infinite alternate}.cave-step.done{background:#53a96d;opacity:1}.cave-step.s1{left:50%;bottom:12%}.cave-step.s2{right:18%;bottom:31%}.cave-step.s3{left:39%;bottom:48%}.cave-step.s4{right:28%;bottom:64%}.cave-step.s5{right:14%;top:12%}
.cave-message{margin:12px 0;padding:12px 15px;border-radius:16px;background:#fff;color:#62736c;text-align:center;font-weight:800}.cave-message.good{background:#e6f7e9;color:#287044}.cave-message.warn{background:#fff0d2;color:#94591e}
.cut-path{position:absolute;left:35%;right:8%;bottom:8%;height:35%;border-bottom:6px dashed #ffe27b;border-radius:0 0 55% 45%;filter:drop-shadow(0 2px 2px #6d361e)}.cut-dot{position:absolute;z-index:4;display:grid;place-items:center;width:42px;height:42px;border:4px solid #fff;border-radius:50%;background:#f6bd4c;color:#5a3a00;font-weight:950;box-shadow:0 6px 14px #0005}.cut-dot.done{background:#55aa70;color:#fff}.cut-dot.d1{left:35%;bottom:32%}.cut-dot.d2{left:48%;bottom:24%}.cut-dot.d3{left:62%;bottom:17%}.cut-dot.d4{left:76%;bottom:12%}.cut-dot.d5{right:5%;bottom:9%}.cave-scissors{position:absolute;z-index:6;left:29%;bottom:34%;font-size:2.7rem;translate:-50% 50%;filter:drop-shadow(0 5px 5px #0007);pointer-events:none}.cave-complete-flash{position:absolute;z-index:8;inset:0;display:grid;place-items:center;background:#173f38c9;color:#fff;font-size:1.6rem;font-weight:950;text-align:center;opacity:0;pointer-events:none}.cave-complete-flash.show{opacity:1;transition:.3s}
.cave-loading{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(circle,#75472c 0,#173f38 60%);color:#fff;text-align:center}.cave-loading div{display:grid;justify-items:center;gap:10px}.cave-loading span{font-size:5rem;animation:torchGlow .7s infinite alternate}.cave-loading strong{font-size:1.7rem}.cave-loading small{color:#e8d7c2}
@keyframes cavePulse{to{transform:scale(1.12);box-shadow:0 0 25px #ffd85f}}@keyframes torchGlow{to{transform:translateY(-8px);filter:drop-shadow(0 0 20px #ffc74e)}}
@media(max-width:480px){.cave-page .shell{padding-inline:10px}.cave-page .challenge-head h1{font-size:1.7rem}.cave-step{width:50px;height:50px}.cut-dot{width:38px;height:38px}}

.cave-arcade{touch-action:manipulation}.cave-grid{position:absolute;inset:0}.safe-tile{position:absolute;width:15%;aspect-ratio:1;translate:-50% -50%;border-radius:45%;background:#f4d48645;box-shadow:inset 0 0 0 2px #ffe9a54a}.cave-goal{position:absolute;right:2%;top:2%;display:grid;place-items:center;color:#fff;font-size:1.4rem;text-shadow:0 2px 5px #000}.cave-goal b{font-size:.68rem}.cave-david{position:absolute;z-index:5;translate:-50% -55%;font-size:3.1rem;filter:drop-shadow(0 6px 5px #0008);transition:left .22s,top .22s}.cave-david[data-dir="left"]{transform:scaleX(-1)}.cave-david.step{animation:sneakStep .22s}.cave-noise{position:absolute;z-index:8;left:50%;top:50%;translate:-50% -50%;padding:9px 14px;border-radius:99px;background:#9e3d32e8;color:#fff;font-weight:950;opacity:0}.cave-noise.show{animation:noisePop .8s}.cave-controls{display:grid;justify-items:center;gap:5px;margin:12px auto;width:max-content}.cave-controls>div{display:flex;gap:5px}.cave-controls button{display:grid;place-items:center;width:60px;height:50px;border:0;border-radius:14px;background:#f6bd4c;color:#493300;font-size:1.25rem;font-weight:950;box-shadow:0 5px 0 #bd7e20}.cave-controls button:active{translate:0 4px;box-shadow:0 1px 0 #bd7e20}.cave-controls button:disabled{opacity:.45}
.mantle-guide{position:absolute;z-index:4;inset:0;width:100%;height:100%;pointer-events:none}.mantle-guide path{fill:none;stroke-linecap:round}.guide-shadow{stroke:#53271f99;stroke-width:3}.mantle-guide #cutGuide{stroke:#fff4c8;stroke-width:1.7;stroke-dasharray:2.5 2.5}.mantle-guide #cutDone{stroke:#f6bd4c;stroke-width:2.2}.cut-start{position:absolute;z-index:5;left:28%;top:69%;translate:-50% -50%;font-size:2.2rem;animation:cavePulse .8s infinite alternate}.cave-cut .cave-scissors{left:28%;top:69%;bottom:auto;translate:-50% -50%;font-size:2.2rem}.cut-path,.cut-dot{display:none}
@keyframes sneakStep{35%{translate:-50% -68%;rotate:-4deg}70%{translate:-50% -55%;rotate:3deg}}@keyframes noisePop{20%,70%{opacity:1;transform:scale(1.08)}100%{opacity:0}}@media(max-width:480px){.cave-controls button{width:55px;height:46px}}

/* Personaje visible y cabecera compacta para priorizar el área de juego. */
.cave-page{background:linear-gradient(180deg,#173f38 0 165px,var(--cream) 165px)}.cave-page .challenge-head{min-height:92px;gap:8px}.cave-page .challenge-head h1{font-size:1.5rem}.cave-page .challenge-head .eyebrow{font-size:.62rem;margin-bottom:3px}.cave-page .instruction{margin:2px auto 9px;font-size:.8rem;line-height:1.25}.cave-david{width:78px;height:112px;background:url('assets/cueva-david-saul-v1.webp') 3% 86%/540% auto no-repeat;border:3px solid #f6d58c;border-radius:42% 42% 38% 38%;box-shadow:0 8px 17px #0007;font-size:0}.cave-david.step{animation:sneakStep .32s ease}.cave-cut-page .challenge-head{min-height:84px}.cave-cut-page .cave-scene{margin-top:2px}.cave-cut-page .instruction{max-width:590px}.mantle-guide #cutGuide{stroke-width:1.15;stroke-dasharray:1.5 1.8}.guide-shadow{stroke-width:2}.mantle-guide #cutDone{stroke-width:1.6}.cut-start,.cave-cut .cave-scissors{left:25%;top:72%}
@media(max-width:480px){.cave-page .shell{padding-top:4px}.cave-page .challenge-head{min-height:78px}.cave-page .challenge-head h1{font-size:1.28rem}.cave-page .counter{padding:8px 11px;font-size:.84rem}.cave-david{width:62px;height:91px}.cave-cut-page .challenge-head{min-height:72px}.cave-cut-page .cave-scene{aspect-ratio:4/4.6;background-position:center 58%}}

/* Laberinto arcade con paredes y pasadizos verdaderos. */
.maze-page .shell{max-width:610px}.cave-maze{--gap:3px;position:relative;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);gap:var(--gap);width:100%;aspect-ratio:9/11;padding:10px;border:7px solid #fff;border-radius:27px;background:linear-gradient(#35251fdd,#171514e8),url('assets/cueva-david-saul-v1.webp') center/cover;box-shadow:0 18px 50px #173d3033;overflow:hidden}.maze-cell{position:relative;display:grid;place-items:center;min-width:0;border-radius:5px}.maze-cell.wall{background:linear-gradient(145deg,#7b5b42,#3d2b25);box-shadow:inset 2px 2px 0 #a9825d,inset -2px -2px 0 #241916}.maze-cell.floor{background:#d7b67625;box-shadow:inset 0 0 0 1px #ffeab126}.maze-cell.floor:after{content:"";width:12%;aspect-ratio:1;border-radius:50%;background:#f3d98a55}.maze-cell.goal{background:#f2bc4652;animation:goalGlow .8s infinite alternate}.maze-cell.goal span{font-size:1.45rem}.maze-player{position:absolute;z-index:6;width:8%;aspect-ratio:1;translate:-50% -50%;border:3px solid #ffe29b;border-radius:50%;background:url('assets/cueva-david-saul-v1.webp') 3% 84%/540% auto no-repeat;box-shadow:0 5px 13px #0009;transition:left .18s,top .18s}.maze-player.moving{animation:mazeHop .2s}.maze-player.bump{animation:mazeBump .32s}.maze-player.arrived{box-shadow:0 0 0 7px #f6bd4c88,0 0 26px #ffd86b}.maze-controls{margin-top:9px}.maze-controls button{width:54px;height:44px}.maze-page .cave-message{margin-top:8px}
@keyframes mazeHop{50%{scale:1.16;rotate:5deg}}@keyframes mazeBump{25%{translate:-62% -50%}60%{translate:-42% -50%}}@keyframes goalGlow{to{background:#f2bc46a0;box-shadow:0 0 18px #ffd56b}}
@media(max-width:480px){.maze-page .challenge-head{min-height:74px}.maze-page .instruction{font-size:.74rem}.cave-maze{padding:7px;border-width:6px;border-radius:22px}.maze-player{width:8.5%}}

.cave-tunnel{aspect-ratio:9/16;border-radius:48% 48% 25px 25px;background:radial-gradient(ellipse at 50% 2%,#ffc86855,transparent 18%),linear-gradient(#120f0ddd,#211712e8),url('assets/cueva-david-saul-v1.webp') center/cover}.cave-tunnel:before,.cave-tunnel:after{content:"";position:absolute;z-index:7;top:-4px;width:34%;height:9%;background:#4b3429;clip-path:polygon(0 0,100% 0,78% 100%,58% 42%,42% 90%,22% 35%);pointer-events:none}.cave-tunnel:before{left:0}.cave-tunnel:after{right:0;transform:scaleX(-1)}.sleeping-saul{display:grid;place-items:center;font-style:normal;font-size:1.15rem}.sleeping-saul b{font-size:.42rem;color:#fff}.cave-tunnel .maze-cell.wall{background:linear-gradient(145deg,#76543c,#2c1d18);border-radius:45% 35% 48% 30%}.cave-tunnel .maze-cell.floor{background:#d7b67618}.cave-tunnel .maze-player{width:8.5%}@media(max-width:480px){.cave-tunnel{aspect-ratio:9/15}.cave-tunnel .maze-player{width:9%}}

/* Laberinto v2: lectura vertical clara, meta visible y mandos siempre disponibles. */
.cave-tunnel{aspect-ratio:9/16;border-radius:28px;background:linear-gradient(#1c1511d9,#2d2119e8),url('assets/cueva-david-saul-v1.webp') center/cover}
.cave-tunnel:before,.cave-tunnel:after{display:none}
.cave-tunnel .maze-cell.wall{border-radius:7px;background:linear-gradient(145deg,#8b6749,#3d2920);box-shadow:inset 2px 2px 0 #bd9167,inset -2px -2px 0 #1a100d}
.cave-tunnel .maze-cell.floor{background:#efd18d24;box-shadow:inset 0 0 0 1px #ffe8ad38}
.cave-tunnel .maze-cell.floor:after{width:16%;background:#ffe59d88;box-shadow:0 0 8px #ffd36d66}
.sleeping-saul{position:absolute;z-index:9;right:-8px;top:-9px;display:block;width:118px;height:76px;padding:48px 8px 0;border:3px solid #ffe5a8;border-radius:18px;background:url('assets/cueva-david-saul-v1.webp') 91% 7%/365% auto no-repeat;color:#fff;font-style:normal;font-size:0;text-align:center;box-shadow:0 7px 17px #0009}
.sleeping-saul:after{content:"Zzz…";position:absolute;right:7px;top:5px;color:#ffe27b;font-size:.72rem;font-weight:950;text-shadow:0 2px 4px #000}
.sleeping-saul b{display:block;font-size:.62rem;color:#fff;text-shadow:0 2px 4px #000}
.cave-tunnel .maze-player{width:9%;border-width:3px;background-position:3% 84%}
.maze-controls{position:fixed;z-index:100;right:12px;bottom:13px;margin:0;padding:7px;border:2px solid #fff8;border-radius:19px;background:#fffdeee8;box-shadow:0 10px 30px #0005;backdrop-filter:blur(5px)}
.maze-controls button{width:49px;height:43px}
@media(max-width:480px){.cave-tunnel{aspect-ratio:9/16}.sleeping-saul{width:96px;height:65px;padding-top:40px}.maze-controls{right:8px;bottom:8px}.maze-controls button{width:45px;height:39px}}

/* Laberinto v3: paredes inequívocas, sendero luminoso y controles sin superposición. */
.maze-page .shell{max-width:560px;padding-inline:10px}.maze-toolbar{position:sticky;z-index:80;top:5px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin:0 0 9px;padding:7px;border:2px solid #e8dbc5;border-radius:20px;background:#fffdf4f2;box-shadow:0 8px 22px #173d3026;backdrop-filter:blur(7px)}
.maze-toolbar .cave-message{margin:0;padding:8px 9px;background:#eef8ed;font-size:.68rem;line-height:1.2;text-align:left}.maze-controls{position:static;margin:0;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}.maze-controls button{width:42px;height:35px;border-radius:11px;font-size:1rem;box-shadow:0 3px 0 #bd7e20}.maze-controls>div{gap:4px}.cave-tunnel{aspect-ratio:9/15.6;padding:7px;gap:4px;border-radius:28px;background:linear-gradient(135deg,#110d0b,#2b1d17);box-shadow:0 18px 48px #10100f66,inset 0 0 55px #000}
.cave-tunnel .maze-cell{border-radius:7px}.cave-tunnel .maze-cell.wall{border:2px solid #2b1b14;background:radial-gradient(circle at 32% 28%,#8d684b 0 12%,transparent 13%),radial-gradient(circle at 72% 68%,#4e3629 0 17%,transparent 18%),linear-gradient(145deg,#6f4e39,#271a15);box-shadow:inset 1px 1px 0 #b58b68,inset -2px -2px 0 #120c09,0 1px 2px #000}
.cave-tunnel .maze-cell.floor{border:2px solid #f3d996;background:linear-gradient(145deg,#fff3c2,#d9ad58);box-shadow:inset 0 0 0 2px #fff7d8,0 0 8px #ffd86b55}
.cave-tunnel .maze-cell.floor:after{content:"";width:32%;height:42%;border-radius:60% 40% 55% 45%;background:#8f64294d;box-shadow:7px 5px 0 -2px #8f642936;transform:rotate(-18deg)}
.cave-tunnel .maze-cell.goal{border-color:#ffe169;background:radial-gradient(circle,#fff7c6,#f5b93d);box-shadow:0 0 18px #ffd557,inset 0 0 0 2px #fff7cf;animation:goalGlow .75s infinite alternate}.cave-tunnel .maze-player{z-index:12;width:10.5%;border:4px solid #fff0ae;box-shadow:0 0 0 3px #173f38,0 7px 16px #000b}.sleeping-saul{right:-5px;top:-8px;width:104px;height:70px;padding-top:44px;border-width:3px;background-position:91% 7%;font-size:0}.sleeping-saul b{font-size:.58rem}.cave-noise{position:fixed;z-index:120;top:50%;font-size:.85rem}
@media(max-width:480px){.maze-page .challenge-head{min-height:67px}.maze-page .instruction{margin-bottom:7px}.maze-toolbar{top:4px;gap:6px;padding:6px}.maze-toolbar .cave-message{font-size:.62rem}.maze-controls button{width:39px;height:33px}.cave-tunnel{aspect-ratio:9/15.8;gap:3px;padding:6px}.cave-tunnel .maze-cell.wall,.cave-tunnel .maze-cell.floor{border-width:1.5px}.sleeping-saul{width:90px;height:61px;padding-top:38px}.cave-tunnel .maze-player{width:11%}}

/* Laberinto v4: recorrido serpenteante y mando inferior para uso con pulgares. */
.maze-page{padding-bottom:118px}.cave-tunnel-v4{aspect-ratio:9/19.5;background:radial-gradient(circle at 50% 30%,#5f351f 0,#25150f 34%,#0f0b09 100%)}
.cave-tunnel-v4:after{content:"";display:block;position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 17%,#ffb34722,transparent 13%),radial-gradient(circle at 83% 48%,#ffb3471c,transparent 15%),radial-gradient(circle at 24% 79%,#ffb34718,transparent 14%)}
.cave-tunnel-v4 .maze-cell{z-index:2}.cave-tunnel-v4 .maze-cell.wall{border-color:#160d09;background:radial-gradient(circle at 28% 24%,#8b5b3d 0 13%,transparent 14%),radial-gradient(circle at 72% 72%,#3d251b 0 20%,transparent 21%),linear-gradient(145deg,#68432f,#24150f);filter:saturate(.85)}
.cave-tunnel-v4 .maze-cell.floor{border-color:#ffd979;background:linear-gradient(145deg,#fff4c7,#e3ad45);box-shadow:inset 0 0 0 2px #fff9df,0 0 12px #fbc85055}
.cave-bottom-dock{position:fixed;z-index:130;left:50%;bottom:max(7px,env(safe-area-inset-bottom));translate:-50% 0;display:flex;align-items:center;justify-content:center;gap:10px;width:min(96vw,520px);padding:8px 10px;border:2px solid #fff;border-radius:23px;background:#fffdf7f5;box-shadow:0 12px 35px #0006;backdrop-filter:blur(8px)}
.cave-bottom-dock .cave-message{flex:1;margin:0;padding:9px 10px;font-size:.67rem;line-height:1.15;text-align:left}.cave-bottom-dock .maze-controls{position:static;flex:0 0 auto;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.cave-bottom-dock .maze-controls button{width:44px;height:37px}.cave-bottom-dock .maze-controls>div{gap:4px}
.cave-tunnel-v4 .sleeping-saul{z-index:20}.cave-tunnel-v4 .maze-player{z-index:21}
@media(max-width:480px){.maze-page{padding-bottom:108px}.cave-tunnel-v4{aspect-ratio:9/20}.cave-bottom-dock{gap:6px;width:calc(100vw - 12px);padding:6px 7px}.cave-bottom-dock .cave-message{font-size:.59rem;padding:7px}.cave-bottom-dock .maze-controls button{width:40px;height:34px}}
