.paradise-screen{position:fixed;inset:0;z-index:10;background:#102b44;display:flex;flex-direction:column;color:#fff0c2;padding-bottom:env(safe-area-inset-bottom)}
.paradise-screen[hidden]{display:none}
.paradise-screen>.topbar{flex:none;width:100%;max-width:none;margin:0}
.paradise-status{flex:none;width:100%}
.paradise-status .hud-item>span:nth-child(2){min-width:0}
.paradise-timer-meter>[data-feather-fill]{position:absolute;inset:auto 2px 2px;height:0;background:linear-gradient(#ffe9a2,#78d9d5);transition:height .22s linear}
.paradise-stage{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none}
.paradise-stage>canvas{width:100%;height:100%;display:block;image-rendering:pixelated}
.paradise-characters{position:absolute;inset:0}
.paradise-entity{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;min-width:44px;min-height:44px;cursor:grab;touch-action:none}
.paradise-entity:active{cursor:grabbing}.paradise-entity:focus-visible{outline:2px dashed #fff5bd;outline-offset:1px}.paradise-entity[aria-pressed=true]{z-index:2}
.paradise-tools{display:flex;gap:7px;align-items:stretch;justify-content:center;padding:6px max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left));flex:none;background:#123e63;border-top:1px solid #79c1bd}
.paradise-tools button{position:relative;inset:auto;flex:1 1 0;min-width:0;min-height:44px;margin:0;padding:6px 8px;white-space:normal;cursor:pointer;font-family:var(--game-button-font);font-size:clamp(8px,1vw,12px);line-height:var(--game-button-line)}
.paradise-tools .phase-switch{max-width:185px}
.paradise-tools .visit-cave{max-width:210px}
.paradise-tool-button{max-width:150px;border:3px solid #a0ede7;background:#19556e;color:#fff2bd;box-shadow:3px 3px #082847}
.paradise-tool-button:hover,.paradise-tool-button:focus-visible{background:#26718a;outline:3px solid #fff2b8;outline-offset:2px}
.paradise-tools .paradise-destination{display:flex;align-items:center;justify-content:center;gap:7px;border-color:#fff0b1;color:#17354d;text-shadow:0 1px #ffffff73;box-shadow:inset 2px 2px #ffffff9c,inset -3px -3px #9a5f4670,3px 3px #082847;background:linear-gradient(#fff1b0 0 48%,#efbe66 48% 100%)}
.paradise-tools .paradise-shop-button{border-color:#d9d6ff;color:#292d5e;background:linear-gradient(#eee5ff 0 48%,#b9b5ed 48% 100%);box-shadow:inset 2px 2px #ffffffa6,inset -3px -3px #65578f70,3px 3px #082847}
.paradise-place-icon{width:18px;height:18px;flex:none;overflow:visible;filter:drop-shadow(1px 1px #fff8)}
.paradise-tools .paradise-destination:hover{filter:brightness(1.08)}
.paradise-tools .paradise-destination:focus-visible{outline:3px solid #fff5bf;outline-offset:2px}
.paradise-tools .paradise-destination:active{box-shadow:inset 2px 2px #17354d44,1px 1px #082847}
.paradise-welcome{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:clamp(16px,5vw,48px);background:#06152fba;backdrop-filter:blur(2px)}
.paradise-welcome[hidden]{display:none}
.paradise-welcome-panel{position:relative;width:min(620px,94vw);padding:clamp(22px,5vw,42px);text-align:center;border:4px solid #a0ede7;background:linear-gradient(#174e68,#102f52);box-shadow:inset 0 0 0 4px #255f79,8px 8px #061b3d;color:#fff2bd}
.paradise-welcome-panel::before,.paradise-welcome-panel::after{content:'✦';position:absolute;color:#fff0a7;font-size:22px;animation:paradise-welcome-spark 1.8s steps(4,end) infinite}
.paradise-welcome-panel::before{top:13px;left:16px}.paradise-welcome-panel::after{right:16px;bottom:13px;animation-delay:.55s}
.paradise-welcome-kicker{display:block;margin-bottom:14px;color:#9ce9e1;font:9px/1.4 'Press Start 2P',ui-monospace,monospace;letter-spacing:.08em}
.paradise-welcome-panel h2{margin:0 0 18px;color:#fff0a7;font:clamp(18px,4vw,30px)/1.45 'Press Start 2P',ui-monospace,monospace;text-shadow:3px 3px #0a2948}
.paradise-welcome-panel p{margin:8px auto;max-width:48ch;font:clamp(13px,2vw,17px)/1.65 ui-monospace,monospace;color:#e7faf3}
.paradise-welcome-panel .primary-button{margin-top:22px;min-height:52px;padding:10px 16px;font-size:clamp(9px,1.4vw,13px)}
@keyframes paradise-welcome-spark{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
.paradise-help{position:absolute;z-index:15;inset:auto 12px 64px;padding:18px;background:#102b44f5;border:3px solid #a0ede7;box-shadow:5px 5px #082847;font:13px/1.7 system-ui;color:#fff0c2;max-height:65%;overflow:auto}
.paradise-help strong{display:block;padding:6px 48px 8px 0;color:#fff0ad;font:11px/1.7 var(--game-button-font)}
.paradise-help .paradise-help-hint{margin-top:12px;padding-top:10px;border-top:1px solid #83cabb55;color:#a8f1d1}
.paradise-help[hidden]{display:none}.paradise-help p{margin:6px 0}.paradise-help button{float:right;min-width:44px;min-height:44px;border:2px solid #86cecb;background:#194d63;color:#fff0c2}
.paradise-announcement{position:absolute;top:auto;bottom:calc(72px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:90%;background:#102b44e8;color:#fff0c2;padding:8px 12px;border:2px solid #b7dbca;box-shadow:3px 3px #082847;font:11px/1.5 'Press Start 2P',ui-monospace,monospace;pointer-events:none;z-index:16}.paradise-announcement:empty{display:none}
@media(max-width:650px){
 .paradise-tools{gap:4px;padding:4px max(4px,env(safe-area-inset-right)) 5px max(4px,env(safe-area-inset-left))}
 .paradise-tools .paradise-destination{flex-direction:column;gap:3px}
 .paradise-place-icon{width:12px;height:12px}
 .paradise-tools button{min-height:42px;padding:4px 3px;font-size:7px}
 .paradise-status .hud-item small{white-space:normal;line-height:1.25}
 .paradise-announcement{top:auto;bottom:calc(68px + env(safe-area-inset-bottom));font-size:9px}
}
@media(orientation:landscape) and (max-height:500px){
 /* Header and counters own their rows; the controls start beside the meadow. */
 .paradise-screen{display:grid;grid-template-columns:minmax(0,1fr) calc(clamp(102px,16vw,140px) + 16px);grid-template-rows:auto auto minmax(0,1fr)}
 .paradise-screen>.topbar{grid-area:1 / 1 / 2 / -1}
 .paradise-status{grid-area:2 / 1 / 3 / -1}
 .paradise-tools{position:relative;z-index:12;inset:auto;grid-area:3 / 2;min-height:0;width:auto;display:grid;align-content:start;gap:5px;padding:5px max(5px,env(safe-area-inset-right)) 7px 6px;border:0;background:transparent;overflow-y:auto}
 .paradise-tools button{width:100%;max-width:none;min-height:36px;padding:3px;font-size:7px}
 .paradise-tools .paradise-destination{flex-direction:row;gap:5px}
 .paradise-place-icon{width:14px;height:14px}
 .paradise-stage{grid-area:3 / 1;min-width:0;margin-right:0}
 .paradise-help{right:calc(clamp(102px,16vw,140px) + 12px);bottom:8px}
 .paradise-announcement{top:auto;bottom:calc(8px + env(safe-area-inset-bottom));left:40%;max-width:64%}
}
@media(prefers-reduced-motion:reduce){.paradise-timer-meter>[data-feather-fill]{transition:none}}
@media(prefers-reduced-motion:reduce){.paradise-welcome-panel::before,.paradise-welcome-panel::after{animation:none}}

.paradise-archangel{cursor:pointer}

.paradise-offering-wrap{position:relative;display:flex;flex:1 1 0;min-width:0;max-width:150px}
.paradise-tools .paradise-offering-button{width:100%;max-width:none;border-color:#c4fff5;background:linear-gradient(#dbfff0 0 48%,#7fdacb 48% 100%);color:#123c4b}
.paradise-tools .paradise-offering-button:disabled{cursor:default;filter:saturate(.4);opacity:.65}
.paradise-tools .paradise-offering-button.needs-feathers{outline:3px solid #fff5b8;outline-offset:2px;box-shadow:0 0 0 5px #eab85a55,inset 2px 2px #ffffff9c,3px 3px #082847}
.paradise-offering-hint{position:fixed;z-index:24;width:280px;max-width:calc(100vw - 24px);box-sizing:border-box;padding:12px 14px;border:2px solid #ffe8a4;background:#102e49f5;color:#fff4cf;box-shadow:3px 3px #082847;font:14px/1.5 ui-monospace,monospace;text-align:left;pointer-events:none}
.paradise-offering-hint[hidden]{display:none}
.paradise-offering-hint strong{color:#aaffeb}
.paradise-offering-hint::after{content:'';position:absolute;bottom:-8px;left:calc(var(--arrow-x,50%) - 6px);width:12px;height:12px;transform:rotate(45deg);background:#102e49;border-right:2px solid #ffe8a4;border-bottom:2px solid #ffe8a4}
.paradise-offering-hint.points-right::after{bottom:auto;left:auto;right:-8px;top:calc(var(--arrow-y,50%) - 6px);transform:rotate(-45deg)}
.paradise-offering-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:26px;border:3px solid #b5f0dd;background:#102e49;color:#fff4cf;box-shadow:7px 7px #061c36;overflow:auto}
.paradise-offering-dialog::backdrop{background:#06152fcc}
.paradise-offering-dialog h2{font:clamp(14px,3vw,22px)/1.6 var(--game-button-font);color:#fff0a7;margin:12px 0 18px}
.paradise-offering-dialog p{font:16px/1.55 ui-monospace,monospace;margin:12px 0}
.paradise-offering-dialog #paradise-offering-balance{color:#b5f0dd}
#paradise-offering-error{color:#ffcebb}
#paradise-offering-error:empty{display:none}
.paradise-offering-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.paradise-offering-actions button{flex:1 1 150px;min-height:48px;padding:10px;font:10px/1.6 var(--game-button-font);white-space:normal}
.paradise-offering-actions button:focus-visible{outline:3px solid #fff1b7;outline-offset:3px}
.paradise-offering-actions button:disabled{opacity:.5;cursor:default}
@media(max-width:650px){.paradise-offering-hint{font-size:13px;width:250px}.paradise-offering-dialog{padding:20px}.paradise-offering-dialog .paradise-welcome-kicker{font-size:8px}}
@media(orientation:landscape) and (max-height:500px){.paradise-offering-wrap{max-width:none}.paradise-offering-hint{width:260px;font-size:12px}.paradise-offering-dialog{padding:16px 22px}.paradise-offering-dialog h2{margin:6px 0;font-size:15px}.paradise-offering-dialog p{font-size:14px;margin:8px 0}.paradise-offering-actions{margin-top:12px}.paradise-offering-actions button{min-height:40px}}

/* Grouzzo: capítulo narrativo, aislado de los controles del juego. */
.grouzzo-sequence{position:absolute;inset:0;z-index:35;overflow:hidden;color:#fff4cf;touch-action:manipulation}
.grouzzo-sequence[hidden],.grouzzo-sequence [hidden]{display:none!important}
.grouzzo-sequence>canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}
.grouzzo-heading{position:absolute;top:max(22px,env(safe-area-inset-top));left:5%;right:18%;text-shadow:2px 2px #172843}
.grouzzo-eyebrow{display:block;font:8px/1.8 var(--game-button-font);letter-spacing:.07em;color:#b8f0e8}
.grouzzo-heading h2{margin:10px 0;font:clamp(12px,2vw,22px)/1.7 var(--game-button-font)}
.grouzzo-pause{position:absolute;top:max(20px,env(safe-area-inset-top));right:4%;width:44px;height:44px;font:18px/1 var(--game-button-font);cursor:pointer}
.grouzzo-dialogue{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(620px,90%);max-height:43%;overflow:auto;padding:18px 20px;border:3px solid #bce8df;background:#112d49f5;box-shadow:inset 0 0 0 3px #29516d,6px 6px #081e36;box-sizing:border-box}
.grouzzo-speaker{display:block;color:#ffd6e7;font:12px/1.6 var(--game-button-font)}
.grouzzo-line{margin:12px 0 16px;font:clamp(15px,2vw,20px)/1.6 ui-monospace,monospace}
.grouzzo-sequence .primary-button{display:block;margin:8px auto 0;min-height:46px;padding:10px 14px;font:clamp(9px,1.3vw,12px)/1.6 var(--game-button-font);white-space:normal;cursor:pointer}
.grouzzo-ending{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center}
.grouzzo-ending h2{margin:26px 0 15px;font:clamp(20px,4.8vw,48px)/1.6 var(--game-button-font);color:#fff1b7;text-shadow:4px 4px #3b3568}
.grouzzo-ending>p{font:16px/1.6 ui-monospace,monospace;max-width:36ch}
.grouzzo-ending .primary-button{margin-top:28px}
.grouzzo-sequence button:focus-visible{outline:3px solid #fff1b7;outline-offset:4px}
.grouzzo-save-error:empty{display:none}
@media(orientation:landscape) and (max-height:500px){
 .grouzzo-heading{top:10px}.grouzzo-heading h2{margin:2px 0;font-size:11px}.grouzzo-eyebrow{font-size:7px}
 .grouzzo-pause{top:10px;width:38px;height:38px}
 .grouzzo-dialogue{bottom:10px;padding:10px 16px;max-height:45%;width:min(700px,88%)}
 .grouzzo-line{font-size:14px;margin:4px 0 6px;line-height:1.4}.grouzzo-speaker{font-size:9px}
 .grouzzo-sequence .primary-button{min-height:36px;padding:6px 12px;font-size:8px;margin-top:5px}
 .grouzzo-ending h2{margin:12px 0;font-size:24px}
}

.is-grouzzo-story>.topbar,.is-grouzzo-story>.paradise-status,.is-grouzzo-story>.paradise-tools{visibility:hidden}

.grouzzo-dialogue{height:min(240px,43%)}
.grouzzo-sequence .grouzzo-dialogue[hidden]{display:block!important;visibility:hidden;pointer-events:none}
@media(orientation:landscape) and (max-height:500px){.grouzzo-dialogue{height:45%}}

/* The help panel follows the same inset close-button layout as the menus. */
.paradise-help { padding-top: 64px; }
.paradise-help strong { padding-right: 0; }
.paradise-help button { position: absolute; top: 10px; right: 32px; float: none; }
.is-archangel-reward .paradise-archangel::before {
 content:'';position:absolute;inset:0;pointer-events:none;border-radius:50%;
 background:radial-gradient(ellipse,#fff2a840,transparent 72%);
 border:2px solid #fff6ba;box-shadow:0 0 14px #ffec8f,0 0 32px #7fffe9,inset 0 0 18px #fff6ba80;
 animation:archangel-reward-glow 2.4s ease-in-out infinite alternate;
}
body.reduce-motion .is-archangel-reward .paradise-archangel::before{animation:none}
@media(prefers-reduced-motion:reduce){.is-archangel-reward .paradise-archangel::before{animation:none}}
/* Acceso al final del postgame: la redención de Bowzzo. */
.paradise-tools .paradise-redemption-button{max-width:190px;border-color:#ffd0e8;color:#3a0c2c;text-shadow:0 1px #ffffff80;background:linear-gradient(#ffe0f4 0 48%,#ff9fd8 48% 100%);box-shadow:inset 2px 2px #ffffffa6,inset -3px -3px #a0306a70,3px 3px #082847;animation:paradise-redemption-glow 1.6s steps(4,end) infinite}
.paradise-tools .paradise-redemption-button[hidden]{display:none}
.paradise-tools .paradise-redemption-button:hover{filter:brightness(1.08)}
.paradise-tools .paradise-redemption-button:focus-visible{outline:3px solid #fff5bf;outline-offset:2px}
@keyframes paradise-redemption-glow{50%{box-shadow:inset 2px 2px #ffffffa6,inset -3px -3px #a0306a70,3px 3px #082847,0 0 14px #ff9fd8}}
@media (prefers-reduced-motion: reduce){.paradise-tools .paradise-redemption-button{animation:none}}
@media(max-width:650px) and (orientation:portrait){
 .paradise-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
 .paradise-tools button{min-height:44px;font-size:8px}
 .paradise-tools>button,.paradise-tools .paradise-offering-wrap{max-width:none}
 .paradise-tools .paradise-redemption-button{grid-column:span 2;max-width:none}
}
