/* Three-stage presentation; older scenes remain frozen. Header/footer proportions and
   control/HUD positions are measured from the 887×1774 generated master. */
.rp16-portal{background:#020812;color-scheme:dark}
.rp16-game{--rp16-header:39.2334cqw;--rp16-footer:14.5434cqw;position:absolute;inset:0;container-type:size;overflow:hidden;background:#020812;color:#f4e8c8;font-family:Georgia,'Times New Roman',serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.rp16-top{position:absolute;z-index:5;top:env(safe-area-inset-top,0px);left:0;right:0;height:var(--rp16-header);background:url('game-art/eyemageddon-v2/header.webp') top center/100% 100% no-repeat;pointer-events:none}
.rp16-icon{position:absolute;width:44px;height:44px;min-height:44px;padding:0;border:0;background-color:transparent;background-position:center;background-size:100% 100%;background-repeat:no-repeat;pointer-events:auto;touch-action:manipulation;cursor:pointer;transform:translate(-50%,-50%)}
.rp16-icon svg{display:none}.rp16-icon[hidden]{display:none}.rp16-icon:disabled{opacity:.45}
.rp16-top .rp16-icon{background-size:30px 30px;filter:brightness(1.3) drop-shadow(0 0 2px #b4e8f7)}
.rp16-top [data-rp16=back]{left:22px;top:max(22px,4.34cqw);background-image:url('game-art/eyemageddon-v3/back.webp')}
.rp16-top [data-rp16=play]{left:calc(100% - 70px);top:max(22px,4.40cqw);background-image:url('game-art/eyemageddon-v3/play.webp')}
.rp16-top [data-rp16=play][aria-pressed=true]{background-image:url('game-art/eyemageddon-v3/pause.webp')}
.rp16-top [data-rp16=info]{left:calc(100% - 22px);top:max(22px,4.40cqw);background-image:url('game-art/eyemageddon-v3/info.webp')}
.rp16-game button:focus-visible,.rp16-intro:focus-visible{outline:2px solid #f7df9b;outline-offset:-2px}.rp16-game button:active{filter:brightness(1.2)}
.rp16-hud{position:absolute;z-index:6;top:calc(env(safe-area-inset-top,0px) + 31.8cqw);left:0;right:0;height:4.8cqw;pointer-events:none}
.rp16-hud>div{position:absolute;top:0;height:100%;display:flex;justify-content:center;align-items:center;min-width:0}
.rp16-hud>div:nth-child(1){left:12.4%;width:24.35%}.rp16-hud>div:nth-child(2){left:43.4%;width:26.4%}.rp16-hud>div:nth-child(3){left:78.2%;width:8.35%}
.rp16-hud small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.rp16-hud b{font:700 clamp(16px,5.3cqw,24px)/1 'EB Garamond',Georgia,serif;color:#fff2d5;text-shadow:0 1px 2px #000;font-variant-numeric:lining-nums tabular-nums;letter-spacing:.1px;white-space:nowrap;display:flex;width:100%;align-items:center;justify-content:space-around}
.rp16-hud b span{display:block;flex:1;text-align:center}.rp16-hud b span[style]{position:absolute;transform:translateX(-50%);width:16.67%}
.rp16-hud>div:nth-child(3) b{font-size:clamp(16px,4.9cqw,22px)}
.rp16-field{position:absolute;inset:calc(env(safe-area-inset-top,0px) + var(--rp16-header)) 0 calc(env(safe-area-inset-bottom,0px) + var(--rp16-footer));touch-action:none;overflow:hidden;background:transparent}
.rp16-field>canvas{position:absolute;inset:0;width:100%;height:100%;outline:none;touch-action:none}
.rp16-footer{position:absolute;z-index:6;inset:auto 0 env(safe-area-inset-bottom,0px);height:var(--rp16-footer);background:url('game-art/eyemageddon-v3/footer.webp') center/100% 100% no-repeat;pointer-events:none}
.rp16-footer .rp16-icon{background-size:28px 28px;top:6.8cqw;z-index:10}
.rp16-footer [data-rp16=sound]{left:7.9%;background-image:url('game-art/eyemageddon-v3/speaker-on.webp')}
.rp16-footer [data-rp16=sound][data-audio-mode=off]{background-image:url('game-art/eyemageddon-v3/speaker-muted.webp')}
.rp16-footer [data-rp16=music]{left:21.8%;background-image:url('game-art/eyemageddon-v3/music-off.webp')}
.rp16-footer [data-rp16=music][data-music=on]{background-image:url('game-art/eyemageddon-v3/music.webp')}
.rp16-footer .rp16-master-muted{opacity:.48;filter:saturate(.45)}
.rp16-reserves{position:absolute;right:3.3%;top:0;width:46%;height:100%;pointer-events:none}
.rp16-ready{position:absolute;z-index:3;inset:calc(env(safe-area-inset-top,0px) + var(--rp16-header)) 0 calc(env(safe-area-inset-bottom,0px) + var(--rp16-footer));display:flex;align-items:center;justify-content:center;pointer-events:none}
.rp16-ready[hidden]{display:none}.rp16-level-title{width:90%;max-width:400px;text-align:center;pointer-events:none}.rp16-level-title img{width:100%;height:auto;display:block;filter:drop-shadow(0 3px 6px #020812)}.rp16-level-title span{display:block;font-size:18px;letter-spacing:5px}.rp16-level-title strong{display:block;font-size:30px;line-height:1.2;letter-spacing:1.5px;color:#f8e8b1;text-shadow:0 2px 4px #000}
.rp16-challenge-intro{display:flex;align-items:center;justify-content:center;background:transparent}
.rp16-overlay{position:absolute;z-index:7;inset:calc(env(safe-area-inset-top,0px) + var(--rp16-header)) 0 calc(env(safe-area-inset-bottom,0px) + var(--rp16-footer));display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:16px 22px;overflow:auto;background:#01070dbc}
.rp16-overlay[hidden]{display:none}.rp16-game[data-mode=countdown] .rp16-overlay{pointer-events:none}
.rp16-game:is([data-mode=finished],[data-mode=invalid],[data-mode=save-error]) .rp16-field>canvas{visibility:hidden}
.rp16-entry-overlay{inset:0;padding:0;background:transparent;overflow:hidden;z-index:4}
.rp16-intro{position:absolute;inset:0;cursor:pointer;outline:none;touch-action:manipulation}
.rp16-intro-card{position:absolute;inset:0;display:grid;opacity:0;pointer-events:none;background:transparent}
.rp16-intro-card:first-child{opacity:1}.rp16-intro-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.rp16-opening .rp16-top{z-index:9}.rp16-opening .rp16-hud,.rp16-opening .rp16-reserves{visibility:hidden}
.rp16-opening .rp16-footer{z-index:9}
.rp16-panel{width:100%;max-width:340px;box-sizing:border-box;padding:22px 16px;text-align:center;border:17px solid transparent;border-image:url('game-art/eyemageddon-v2/panel.webp') 40 fill stretch}
.rp16-panel h2{font:700 27px/1.15 Georgia,serif;letter-spacing:1.5px;margin:0 0 16px;color:#eed9a4;text-shadow:0 2px 2px #020812}.rp16-panel p{font:16px/1.4 Georgia,serif;margin:12px 0;color:#e5ddc9}
.rp16-panel button,.rp16-completion-actions button{min-height:48px;box-sizing:border-box;padding:9px 12px;color:#f5e7bc;font:700 17px/1.2 Georgia,serif;background:none;border:10px solid transparent;border-image:url('game-art/eyemageddon-v2/panel.webp') 40 fill stretch;touch-action:manipulation;cursor:pointer}
.rp16-panel>.rp16-primary{width:100%}.rp16-pause-actions{display:flex;gap:10px;justify-content:center}.rp16-pause-actions button{flex:1}.rp16-paused-heading{pointer-events:auto;font-size:32px!important;letter-spacing:5px!important}
.rp16-completion{width:100%;max-width:350px;text-align:center;box-sizing:border-box;border:17px solid transparent;border-image:url('game-art/eyemageddon-v2/panel.webp') 40 fill stretch;padding:22px 10px;color:#f4e5bd}
.rp16-completion-title{font:700 26px/1.2 Georgia,serif;letter-spacing:2px;margin:0 0 20px}.rp16-completion h2{font:700 45px/1 Georgia,serif;font-variant-numeric:tabular-nums;margin:0 0 14px}.rp16-completion p{font:16px/1.35 Georgia,serif;margin:12px 0}.rp16-completion-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}.rp16-completion-actions button{flex:1;min-width:120px}
.rp16-settle,.rp16-loading{font:700 18px/1.4 Georgia,serif;letter-spacing:2px;text-align:center;color:#e4cf9d}
.rp16-status,.rp16-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.rp16-lab-boards{display:grid;gap:8px}.rp16-lab-panel{max-height:100%;overflow:auto;padding:14px 10px}.rp16-lab-panel h2{margin-bottom:8px}.rp16-lab-panel p{font-size:14px}.rp16-lab-boards button{font-size:15px}
@media(max-height:650px){.rp16-panel{padding:14px 12px}.rp16-panel p{font-size:15px}.rp16-completion{padding:15px 10px}.rp16-completion-title{margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){.rp16-game *{animation:none!important;transition:none!important}}

.rp16-ready{opacity:1;transition:opacity .2s ease}.rp16-ready.rp16-title-launched{opacity:0}.rp16-opening .rp16-footer [data-rp16=music]{left:21.8%}
.rp16-panel,.rp16-completion{max-height:100%;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.rp16-overlay{overscroll-behavior:contain}


/* Full viewport world is independent of the 360 x 500 combat coordinate field. */
.rp16-world{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rp16-field{background:transparent}
.rp16-intro-card{box-sizing:border-box;inset:calc(env(safe-area-inset-top,0px) + var(--rp16-header)) 0 calc(env(safe-area-inset-bottom,0px) + var(--rp16-footer));padding:6px 18px 10px;grid-template-rows:minmax(0,53fr) 15fr 12fr 20fr;gap:0;justify-items:center;text-align:center;color:#f8e7bf;text-shadow:0 2px 4px #000}
.rp16-card-hero{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.rp16-card-hero img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none}
.rp16-card-name{display:flex;align-items:center;justify-content:center;width:100%;margin:0;font:700 min(9cqw,4.3cqh)/1.02 Georgia,'Times New Roman',serif;font-style:normal;letter-spacing:1px;text-transform:uppercase;color:#f8dfaa;white-space:nowrap}
.rp16-card-stats{width:90%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:8px 0;font:400 min(5.2cqw,3.2cqh)/1.12 Georgia,'Times New Roman',serif;font-style:normal;letter-spacing:2px;color:#f8dfaa;background:var(--rp16-ornaments,none) center/100% 100% no-repeat}
.rp16-intro-prose{position:static;display:flex;align-items:center;justify-content:center;width:90%;height:100%;min-height:0;box-sizing:border-box;padding:5px 0;margin:0;font:400 clamp(17px,4.5cqw,18px)/1.25 Georgia,'Times New Roman',serif;text-align:center;color:#f7ead1;text-shadow:0 1px 3px #031222;pointer-events:none;overflow:visible}

.rp16-card-stats{flex-direction:column;padding:0;justify-content:space-around;gap:0;background:none}
.rp16-stat-ornament{width:100%!important;height:min(4cqw,2.8cqh)!important;object-fit:fill!important;opacity:1;filter:brightness(1.3)}

/* Intro cards omit source score labels/wells below y249/348 while retaining
   the central title pendant down to y271. Only the painted layer is clipped;
   the accepted header, card, world and footer coordinates remain unchanged. */
.rp16-cast-opening .rp16-top{clip-path:polygon(0 0,100% 0,100% 71.5%,53% 71.5%,51% 78%,49% 78%,47% 71.5%,0 71.5%)}

/* A pause keeps the actual world and battlefield untouched. Its lettering is
   the only added material; buttons retain generous invisible touch targets. */
.rp16-frozen-overlay{background:transparent;pointer-events:none}
.rp16-pause{width:100%;max-width:340px;text-align:center;color:#f8dfaa;pointer-events:none;text-shadow:0 2px 4px #01040a}
.rp16-pause .rp16-paused-heading{margin:0 0 18px;font:700 clamp(29px,8cqw,36px)/1.15 Georgia,'Times New Roman',serif;letter-spacing:5px;pointer-events:none}
.rp16-pause-actions{gap:18px}
.rp16-pause-actions button{min-width:112px;min-height:56px;padding:10px 8px;border:0;border-image:none;background:transparent;color:#f8dfaa;font:700 clamp(18px,5cqw,21px)/1.2 Georgia,'Times New Roman',serif;text-shadow:0 2px 3px #01040a;letter-spacing:.6px;pointer-events:auto;touch-action:manipulation;cursor:pointer}
.rp16-pause-actions button:active{filter:brightness(1.2)}
.rp16-pause p{margin:16px 0 0;font:16px/1.35 Georgia,serif;color:#f5e7cc}



/* The original illustrated title/gem stay fixed above the animated header pupil. */
.rp16-header-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rp16-top .rp16-icon{z-index:1}
.rp16-game[data-mode=paused] :is(.rp16-ready,.rp16-intro,.rp16-intro-card,.rp16-level-title){visibility:hidden;opacity:0;transition:none;pointer-events:none}

/* Exact illustrated navy/gold materials; transparent battlefield between them. */
.rp16-pause-ornament{display:block;width:92%;height:auto;max-height:34px;object-fit:contain;margin:0 auto 9px;pointer-events:none}
.rp16-pause-ornament-bottom{margin:15px auto 0}
.rp16-pause .rp16-paused-heading{margin:0 0 14px}
.rp16-pause .rp16-paused-heading button{min-height:56px;min-width:204px;padding:5px 16px;border:0;background:transparent;color:#f8dfaa;font:inherit;letter-spacing:inherit;text-shadow:0 2px 4px #01040a;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.rp16-pause-actions{gap:14px}
.rp16-pause-actions button{box-sizing:border-box;min-width:112px;min-height:56px;padding:8px 6px;border:10px solid transparent;border-image:url('game-art/eyemageddon-v2/panel.webp') 40 stretch;background:transparent;font-size:clamp(17px,4.9cqw,20px);line-height:1.2}


