/* Pupil Pursuit: the maze fills the phone; artwork retains its proportions. */
.pp-game{--pp-gold:#f6d17c;--pp-teal:#60eff5;position:relative;isolation:isolate;box-sizing:border-box;width:100%;height:100%;min-height:0;overflow:hidden;display:grid;grid-template-rows:54px minmax(0,1fr) 87px;gap:2px;padding:0 2px;color:#effcfc;background:#03121c url('game-art/pupil-cabinet-v1.png') center/cover;font-family:system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:none;container-type:size}
.pp-game:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#00101d22,#00101d00 60%,#00101d44)}
.pp-header{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;grid-template-rows:25px 23px;column-gap:6px;align-items:center;min-width:0;padding:3px 7px;background:linear-gradient(110deg,#092d3bdf,#02131eea 45%,#124454d9);box-shadow:inset 0 1px #c4eced44,inset 0 -1px #e2c180,0 1px 5px #000;border:0;position:relative;top:auto;border-radius:10px 10px 0 0}
.pp-round-button{appearance:none;display:grid;place-items:center;width:44px;height:44px;flex:none;box-sizing:border-box;border:1px solid #e9c477;border-radius:50%;color:#ffdfa0;background:radial-gradient(circle at 35% 25%,#276b78 0,#053a4c 35%,#02101b 75%);box-shadow:0 0 0 1px #987642,inset 0 1px 3px #eeffff80,0 3px 5px #000a;font:900 23px system-ui;cursor:pointer;padding:10px;touch-action:manipulation}
.pp-round-button svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 1px #000)}
.pp-round-button:active,.pp-button:active{transform:translateY(2px);filter:brightness(1.2)}
.pp-game button:focus-visible,.pp-stick:focus-visible{outline:3px solid #fff;outline-offset:2px}
.pp-title{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;min-width:0;margin:0;font:900 italic clamp(19px,5.6cqw,24px)/1 'Arial Black',Impact,system-ui;letter-spacing:-.7px;text-transform:uppercase;white-space:nowrap;filter:drop-shadow(1px 2px 1px #000)}
.pp-title span{background:linear-gradient(#e8ffff 2%,#5be4ec 23%,#02a9be 52%,#008998 57%,#00546d 80%,#00b9c5);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:.4px #f3d289;paint-order:stroke fill}
.pp-score{grid-column:2;grid-row:2;justify-self:center;transform:translateX(-30px);font-size:21px;line-height:1;font-weight:900;letter-spacing:-.5px;color:#ffe2a0;text-shadow:0 2px 1px #000}
.pp-lives{grid-column:2;grid-row:2;display:flex;align-items:center;justify-self:end;gap:1px;margin-right:15px}
.pp-lives canvas{width:17px;height:17px}
.pp-board-slot{display:grid;place-items:center;min-width:0;min-height:0;position:relative;overflow:hidden}
.pp-board{display:block;max-width:100%;max-height:100%;background:#021018;touch-action:none}
.pp-deck{position:relative;display:grid;grid-template-columns:1fr 92px 1fr;align-items:center;min-height:0;padding:0 7px;border-top:1px solid #d6ad60;border-radius:0 0 18px 18px;background:radial-gradient(ellipse at 50% 50%,#147d8960,transparent 55%),linear-gradient(90deg,#001824c9,#06333dd9,#001824c9);box-shadow:inset 0 2px #c2f5f529,inset 0 -3px #b1905155}
.pp-menu{grid-column:3;grid-row:1/3;justify-self:end}.pp-back{grid-column:1;grid-row:1/3;justify-self:start}
.pp-deck:before{content:'';position:absolute;inset:12px 8px;border-top:1px solid #63d7e54d;border-bottom:1px solid #c9aa6550;border-radius:50%;pointer-events:none}
.pp-stick{position:relative;display:grid;place-items:center;grid-column:2;width:92px;height:78px;touch-action:none;cursor:grab;outline:none}
.pp-stick:active{cursor:grabbing}
.pp-ball{display:block;width:48px;height:48px;border:1px solid #a5ffff;border-radius:50%;background:radial-gradient(ellipse at 32% 25%,#f3ffff 0,#a4fcff 8%,#22d8ed 20%,#0283b4 45%,#034c71 65%,#001e32 85%);box-shadow:inset -3px -5px 7px #001924,0 3px 4px #000,0 0 9px #00a7cc70;pointer-events:none;will-change:transform}
.pp-collected{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.pp-collected canvas{width:28px;height:34px}
.pp-menu-tools{display:flex;justify-content:space-around;gap:15px;margin:18px 0 3px}
.pp-overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:14px;box-sizing:border-box;background:#00111b80;backdrop-filter:blur(2px)}
.pp-overlay[hidden]{display:none}
.pp-panel{box-sizing:border-box;width:min(310px,100%);max-height:100%;overflow:auto;text-align:center;padding:24px 18px;border:1px solid #f5d596;border-radius:19px;background:linear-gradient(145deg,#073b4bf5,#03121efa);box-shadow:0 0 0 3px #064e62,0 10px 40px #000c,inset 0 1px #bdfaff66}
.pp-panel h2{margin:0 0 14px;color:#ffdc89;font-size:28px;line-height:1.1;font-weight:900;text-shadow:0 2px 2px #000}
.pp-panel p{font-size:14px;line-height:1.5;color:#cde6e9;margin:10px 0}
.pp-panel .pp-big-score{font-size:46px;font-weight:900;color:#ffe4a7;line-height:1.1;margin:8px 0 18px}
.pp-panel small{font-size:12px;color:#91b9c3}
.pp-button{appearance:none;min-height:48px;width:100%;border-radius:11px;border:1px solid #ffe7aa;box-shadow:0 3px 0 #896229,inset 0 1px 1px #ffffd9,0 6px 12px #0006;background:linear-gradient(#ffeab0,#e9c06a 48%,#c28d3e 51%,#e7b758);color:#10252c;text-shadow:0 1px #ffedaf;font:bold 18px system-ui;padding:9px 16px;cursor:pointer;margin:6px 0;touch-action:manipulation}
.pp-button.pp-secondary{background:linear-gradient(#17586a,#062b40);color:#cffcff;border-color:#62a5b3;text-shadow:none;box-shadow:0 3px 0 #001421,inset 0 1px #8eddeb55;font-size:15px}
.pp-button:disabled{opacity:.65;cursor:wait}
.pp-ready-overlay{background:none;backdrop-filter:none;pointer-events:none}
.pp-ready-overlay .pp-panel{width:185px;padding:14px;pointer-events:auto;background:#031a25ec}
.pp-ready-overlay .pp-button{font-size:23px;letter-spacing:2px}
.pp-help-overlay{inset:56px 6px 88px;background:#00111bf2;align-items:flex-start;padding:8px}
.pp-help-overlay .pp-panel{text-align:left;width:100%;padding:18px;max-height:100%}
.pp-help-overlay h2{text-align:center;font-size:23px}
.pp-cast{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:12px 0}
.pp-cast canvas{width:100%;height:75px;object-fit:contain}.pp-cast b{display:block;font-size:11px;text-align:center;color:#ffe2a0}
.pp-game .pp-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
.pp-upgrade-choice{max-width:420px;margin:auto;background:#062b3a!important;color:#ecfcff!important;border:1px solid #cfae6c;border-radius:20px}
@media (max-height:500px){.pp-game{grid-template-rows:32px minmax(0,1fr) 48px}.pp-stick{height:44px}.pp-ball{width:34px;height:34px}.pp-header{padding:0 6px}.pp-panel{padding:12px}.pp-panel h2{font-size:22px}}
@media (prefers-reduced-motion:reduce){.pp-game *{scroll-behavior:auto!important}}

/* Fixed added corridor cells fill the phone without stretching art or travel.
   All phone sizes use the same maze; only the uniform drawing scale changes. */
.pp-game.pp-first-level{grid-template-rows:minmax(76px,.48fr) minmax(0,auto) minmax(82px,.52fr);gap:0;padding:0 3px}
.pp-first-level .pp-board-slot{aspect-ratio:28/46;width:100%;max-height:calc(100cqh - 158px);align-self:center;box-shadow:0 -2px 0 #d3ae69,0 2px 0 #d3ae69,0 0 18px #00c9e329;z-index:1;background:#021018}
.pp-first-level .pp-header{grid-template-rows:36px 30px;align-content:center;padding:5px 8px;border-radius:0;background:linear-gradient(180deg,#02172533,#00121a99)}
.pp-first-level .pp-header:after{content:'';position:absolute;left:20%;right:20%;bottom:10px;height:1px;background:linear-gradient(90deg,transparent,#deb56c,transparent);pointer-events:none}
.pp-first-level .pp-title{font-size:clamp(22px,6.1cqw,28px);letter-spacing:-.5px}
.pp-first-level .pp-score{font-size:26px}
.pp-first-level .pp-lives canvas{width:19px;height:19px}
.pp-first-level .pp-deck{border:0;border-radius:0;background:linear-gradient(180deg,#00131b66,#00131b11);box-shadow:inset 0 1px #82edee2e}
.pp-first-level .pp-deck:before{inset:24px 12px;border-color:#daaf6650}
.pp-first-level .pp-stick{height:78px}
.pp-first-level .pp-ball{width:50px;height:50px;box-shadow:inset -3px -5px 7px #001924,0 4px 6px #000,0 0 16px #00a7cc80}
.pp-first-level .pp-help-overlay{inset:58px 6px 10px;z-index:5}
@media (max-height:560px){
  .pp-game.pp-first-level{grid-template-rows:54px minmax(0,1fr) 58px}
  .pp-first-level .pp-board-slot{aspect-ratio:auto;height:100%}
  .pp-first-level .pp-header{grid-template-rows:25px 23px;padding:0 8px}
  .pp-first-level .pp-header:after{display:none}
  .pp-first-level .pp-title{font-size:21px}
  .pp-first-level .pp-score{font-size:21px}
  .pp-first-level .pp-stick{height:56px}
  .pp-first-level .pp-ball{width:38px;height:38px}
}

/* Full-board skip target leaves the cinematic artwork unobstructed. */
.pp-intro-skip{position:absolute;inset:0;z-index:2;appearance:none;border:0;padding:0;background:transparent;cursor:pointer;touch-action:manipulation}
.pp-intro-skip[hidden]{display:none}
.pp-intro-skip:focus-visible{outline:2px solid #ffe2a0!important;outline-offset:-5px!important}

/* Optical cabinet trim stays inside the approved header and deck dimensions. */
.pp-first-level .pp-header{background:radial-gradient(ellipse at 50% 0,#1b708950,transparent 75%),linear-gradient(180deg,#04192655,#00111cd9);box-shadow:inset 0 1px #ffe0a455,inset 0 -2px #b28a42,inset 0 -4px #052536,0 0 16px #0009}
.pp-first-level .pp-header:before{content:'';position:absolute;inset:3px 2px;border:1px solid #caa15f66;border-radius:14px 14px 3px 3px;box-shadow:inset 0 1px #cffcff30;pointer-events:none}
.pp-first-level .pp-header:after{bottom:5px}
.pp-title{position:relative;height:100%;width:100%;overflow:hidden}
.pp-title .pp-title-art{position:absolute;inset:0;display:none;background:url('game-art/pupil-title-v1.png') center 49%/100% 220% no-repeat;background-clip:border-box;-webkit-background-clip:border-box;-webkit-text-stroke:0}
.pp-has-title-art .pp-title-art{display:block}
.pp-has-title-art>span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.pp-first-level .pp-score{font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:.2px;transform:none;justify-self:start;margin-left:clamp(4px,4cqw,18px);color:#fff0ae;text-shadow:0 2px 0 #805817,0 3px 4px #000,0 0 10px #d3ab6040}
.pp-first-level .pp-lives{margin-right:8px;gap:1px}
.pp-first-level .pp-lives canvas{width:25px;height:25px;filter:drop-shadow(0 2px 2px #000)}
.pp-first-level .pp-collected{grid-column:1;grid-row:1;justify-content:flex-start}
.pp-first-level .pp-stick{grid-row:1}
.pp-doctor-select{grid-column:3;grid-row:1;justify-self:end;width:52px;height:52px;padding:10px;margin-right:3px;box-shadow:0 0 0 2px #173e4a,0 0 0 3px #b59054,inset 0 2px 4px #aeffff80,0 4px 8px #000}
.pp-round-button .pp-silhouette{fill:currentColor;stroke-width:1}
.pp-doctor-select svg>path:last-child{stroke:#08415a;stroke-width:1.4}
.pp-picker-overlay{position:absolute;inset:0;z-index:10;background:#021624f5;touch-action:pan-y;user-select:none}
.pp-picker-overlay[hidden]{display:none}
.pp-picker{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(ellipse at 50% 0,#15596766,transparent 65%),#041a28}
.pp-picker-top{position:relative;display:flex;align-items:center;gap:12px;padding:12px 15px;border-bottom:1px solid #bf9955;background:#082736}
.pp-picker-top h2{margin:0;font:900 italic 25px/1.1 system-ui;color:#ffe0a0;text-shadow:0 2px 2px #000}
.pp-picker-top p{margin:6px 0 0;font-size:13px;color:#bfe7ec}
.pp-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start;overflow-y:auto;min-height:0;padding:12px;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.pp-doctor-card{position:relative;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;padding:5px 3px 8px;border:1px solid #436274;border-radius:13px;color:#d4ebef;background:radial-gradient(ellipse at 50% 32%,#164051,#051725 80%);box-shadow:inset 0 1px #d0fdff22,0 3px 5px #0006;cursor:pointer;touch-action:pan-y}
.pp-doctor-card canvas{display:block;width:100%;height:auto;aspect-ratio:10/11;pointer-events:none;filter:drop-shadow(0 4px 3px #0008)}
.pp-doctor-card strong{font:700 12px/1.2 system-ui;min-height:29px;display:grid;place-items:center;text-align:center;max-width:100%;overflow-wrap:anywhere;text-shadow:0 2px 2px #000;pointer-events:none}
.pp-doctor-card[aria-pressed=true]{border:2px solid #efcf86;padding:4px 2px 7px;background:radial-gradient(ellipse at 50% 35%,#287787,#083744 80%);box-shadow:0 0 0 1px #5de5e6,0 0 10px #20bac83b,inset 0 1px #fff5;color:#ffe1a1}
.pp-doctor-card:disabled{opacity:1;cursor:default}
.pp-doctor-tick{position:absolute;right:4px;top:4px;width:23px;height:23px;border-radius:50%;background:#ffe19d;color:#06494e;display:none;place-items:center;font-weight:900;pointer-events:none;box-shadow:0 2px 4px #0006}
.pp-doctor-card[aria-pressed=true] .pp-doctor-tick{display:grid}
.pp-portrait-missing canvas{background:radial-gradient(circle,#9cc7d433 25%,transparent 26%)}
.pp-picker-bottom{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:8px 12px 12px;border-top:1px solid #c39d62;background:#06212f}
.pp-picker-bottom .pp-button{flex:1;width:auto;margin:0;white-space:nowrap;padding:9px 12px;font-size:17px}
.pp-picker-bottom .pp-button:disabled{cursor:default;filter:grayscale(.7);opacity:.5}
.pp-picker-bottom p{width:100%;margin:0;font-size:13px;line-height:1.3;color:#ffdc9c;text-align:center}
.pp-picker-bottom p:empty{display:none}
@media(max-height:560px){.pp-first-level .pp-score{font-size:23px}.pp-first-level .pp-lives canvas{width:21px;height:21px}.pp-doctor-select{width:44px;height:44px}}

/* Two score readouts use the existing header; the maze keeps its size. */
.pp-daily-best .pp-score{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;column-gap:6px;row-gap:2px;margin-left:2px;margin-right:80px;width:calc(100% - 82px);font-size:18px;line-height:1.05;letter-spacing:0}
.pp-daily-best .pp-score small{font:800 8px/1 system-ui;letter-spacing:.5px;color:#b4e1e8;text-shadow:0 1px 2px #000;white-space:nowrap}
.pp-daily-best .pp-score strong{font:900 22px/1 system-ui;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-daily-best .pp-score small:first-child{grid-column:1;grid-row:1}
.pp-daily-best .pp-score small:nth-of-type(2){grid-column:2;grid-row:1}
.pp-daily-best .pp-score [data-current-score]{grid-column:1;grid-row:2;color:#fff0ae}
.pp-daily-best .pp-score [data-best-score]{grid-column:2;grid-row:2;color:#73edf1}
.pp-daily-best .pp-lives{margin-right:0;gap:0;max-width:80px}
.pp-daily-best .pp-lives canvas{width:25px;min-width:0;object-fit:contain}

/* Current run: one compact title row and one 44px phone control row. */
.pp-game.pp-first-level.pp-compact{grid-template-rows:minmax(82px,.48fr) minmax(0,auto) minmax(82px,.52fr)}
.pp-compact .pp-header{grid-template-columns:44px 44px minmax(0,1fr) 44px 44px;grid-template-rows:30px 44px;gap:0 4px;padding:4px 6px;align-content:center}
.pp-compact .pp-title{grid-column:1/4;grid-row:1;margin-right:0;width:100%;font-size:24px}
.pp-compact .pp-back{grid-column:1;grid-row:2}
.pp-compact .pp-menu{grid-column:2;grid-row:2;justify-self:center}
.pp-compact .pp-header-sound{grid-column:4;grid-row:2}
.pp-compact .pp-header-info{grid-column:5;grid-row:2}
.pp-compact .pp-score,.pp-compact.pp-daily-best .pp-score{grid-column:3;grid-row:2;justify-self:stretch;transform:none;width:auto;margin:0;column-gap:3px}
.pp-compact.pp-daily-best .pp-score strong{font-size:clamp(15px,4.6cqw,19px)}
.pp-compact.pp-daily-best .pp-score small{font-size:7px}
.pp-compact .pp-lives{position:static;grid-column:4/6;grid-row:1;justify-self:end;align-self:center;right:auto;top:auto;margin:0;max-width:92px;gap:0}
.pp-compact .pp-lives canvas{width:22px;height:22px}
.pp-compact .pp-board-slot{max-height:calc(100cqh - 164px)}
.pp-compact .pp-overlay:not(.pp-ready-overlay){background:#03121c;backdrop-filter:none}
.pp-compact .pp-entry-overlay{padding:0;background:none;backdrop-filter:none;pointer-events:auto}
.pp-compact .pp-help-overlay{inset:84px 6px 10px}
.pp-compact .pp-round-button:disabled{opacity:.55;cursor:default}
@media(max-height:560px){.pp-game.pp-first-level.pp-compact{grid-template-rows:82px minmax(0,1fr) 58px}.pp-compact .pp-board-slot{max-height:none}.pp-compact .pp-title{font-size:21px}.pp-compact .pp-header{grid-template-rows:30px 44px}}

/* Approved current-v10 cabinet. Earlier versions retain their frozen layout. */
.pp-game.pp-first-level.pp-compact{--pp-header:19.484cqw;--pp-footer:28.974cqw;grid-template-rows:var(--pp-header) minmax(0,1fr) var(--pp-footer);gap:0;padding:0;background:#03121c}
.pp-compact.pp-first-level:before{display:none}
.pp-compact.pp-first-level .pp-header{display:block;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;background:url('game-art/pupil-pursuit-frame-v1-header.webp') center bottom/100% var(--pp-header) no-repeat}
.pp-compact.pp-first-level .pp-header:before{display:none}
.pp-compact.pp-first-level .pp-header:after{display:none}
.pp-compact .pp-title{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip-path:inset(50%);margin:0}
.pp-compact .pp-header .pp-round-button,.pp-compact .pp-deck .pp-round-button{position:absolute;display:block;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;background:transparent;box-shadow:none;transform:none}
.pp-compact .pp-header .pp-round-button svg,.pp-compact .pp-deck .pp-round-button svg{display:none}
.pp-compact .pp-back{left:max(4px,calc(7.796cqw - 22px));bottom:calc(6.155cqw - 22px)}
.pp-compact .pp-menu{right:48px;bottom:calc(6.097cqw - 22px)}
.pp-compact .pp-header-info{right:4px;bottom:calc(6.097cqw - 22px)}
/* The state patch covers the original icon exactly; the 44px hit regions are disjoint. */
.pp-compact.pp-first-level .pp-header:has(.pp-menu[aria-pressed=false]):after{content:'';display:block;position:absolute;inset:auto;left:78.546%;bottom:2.110cqw;width:8.089cqw;height:7.972cqw;background:url('game-art/pupil-pursuit-frame-v1-play.webp') center/100% 100% no-repeat;pointer-events:none;border:0;border-radius:0}
.pp-compact.pp-first-level .pp-score,.pp-compact.pp-daily-best .pp-score{position:absolute;inset:auto;left:36.928%;bottom:3.517cqw;width:11.606%;height:4.338cqw;margin:0;display:flex;align-items:center;justify-content:center;font:900 clamp(9px,2.75cqw,12px)/1 system-ui;color:#fff0ae;text-shadow:0 1px 2px #000;pointer-events:none}
.pp-compact.pp-daily-best .pp-score{left:0;bottom:0;width:100%;height:100%;display:block}
.pp-compact.pp-daily-best .pp-score small{display:none}
.pp-compact.pp-daily-best .pp-score strong{position:absolute;left:36.928%;bottom:3.517cqw;width:11.606%;height:4.338cqw;display:flex;align-items:center;justify-content:center;font:900 clamp(9px,2.75cqw,12px)/1 system-ui;letter-spacing:-.3px}
.pp-compact.pp-daily-best .pp-score [data-best-score]{left:61.196%;width:11.489%;color:#d9ffff}
.pp-compact.pp-first-level .pp-board-slot{height:100%;width:100%;max-height:none;aspect-ratio:auto;align-self:stretch;box-shadow:none;padding:0 1.524%;box-sizing:border-box;background:url('game-art/pupil-pursuit-frame-v1-field.webp') center bottom/100% auto no-repeat,url('game-art/pupil-pursuit-frame-v1-quiet-band.webp') center/100% auto repeat-y}
.pp-compact .pp-board{background:transparent}
.pp-compact.pp-first-level .pp-deck{display:block;padding:0;margin:0;min-height:0;border:0;box-shadow:none;background:url('game-art/pupil-pursuit-frame-v1-footer.webp') center top/100% var(--pp-footer) no-repeat}
.pp-compact.pp-first-level .pp-deck:before{display:none}
.pp-compact.pp-first-level .pp-stick{position:absolute;left:calc(50.234% - 44px);top:calc(12.485cqw - 44px);width:88px;height:88px;display:grid;place-items:center}
.pp-compact.pp-first-level .pp-ball{width:10.903cqw;height:10.903cqw;border:0;background:url('game-art/pupil-pursuit-frame-v1-trackball.webp') center/100% 100% no-repeat;box-shadow:none;clip-path:circle(49%);border-radius:50%}
.pp-compact.pp-first-level .pp-doctor-select{left:calc(90.446% - 22px);top:calc(12.544cqw - 22px);right:auto;bottom:auto}
.pp-compact.pp-first-level .pp-header-sound{left:calc(13.247% - 22px);top:calc(21.102cqw - 22px);right:auto;bottom:auto}
.pp-compact .pp-header-sound[aria-pressed=false]:after{content:'';position:absolute;left:10px;top:21px;width:24px;height:2px;background:#f9dbbb;box-shadow:0 1px 2px #071621;transform:rotate(-45deg);pointer-events:none}
.pp-compact.pp-first-level .pp-lives{position:absolute;inset:auto;left:66.354%;top:18.640cqw;width:22.274%;height:3.282cqw;max-width:none;margin:0;display:flex;justify-content:flex-end;align-items:center;gap:0;pointer-events:none}
.pp-compact.pp-first-level .pp-lives canvas{flex:1;min-width:0;max-width:22px;width:auto;height:100%;object-fit:contain}
.pp-compact.pp-first-level .pp-collected{position:absolute;left:4.103%;top:8.558cqw;width:31.888%;height:8.206cqw;display:flex;justify-content:flex-start;align-items:center;gap:2.814cqw;overflow-x:auto;scrollbar-width:none;pointer-events:none}
.pp-compact .pp-collected canvas{flex:0 0 8.206cqw;width:8.206cqw;height:8.206cqw;object-fit:contain}
.pp-compact .pp-help-overlay{inset:var(--pp-header) 6px 6px}
.pp-compact .pp-overlay:not(.pp-ready-overlay){background:#03121cde}
/* Matching art patches fill the disjoint targets, covering both baked circles.
   This preserves each control's material while every visible glyph belongs to its button. */
.pp-compact .pp-header .pp-menu{background:url('game-art/pupil-pursuit-frame-v1-pause.webp') center/100% 100% no-repeat}
.pp-compact .pp-header .pp-menu[aria-pressed=false]{background-image:url('game-art/pupil-pursuit-frame-v1-play.webp')}
.pp-compact .pp-header .pp-header-info{background:url('game-art/pupil-pursuit-frame-v1-info.webp') center/100% 100% no-repeat}
.pp-compact.pp-first-level .pp-header:has(.pp-menu[aria-pressed=false]):after{display:none}
/* Keep the established 3px phone rails and the old minimum 536px maze at360x700.
   The short-phone footer crops only its lower trim; its artwork is never stretched. */
.pp-compact.pp-first-level .pp-board-slot{padding-left:3px;padding-right:3px}
@media(max-width:380px) and (max-height:720px){
 .pp-game.pp-first-level.pp-compact{grid-template-rows:var(--pp-header) minmax(0,1fr) calc(164px - var(--pp-header))}
 .pp-compact.pp-first-level .pp-header-sound{top:min(calc(21.102cqw - 22px),calc(164px - var(--pp-header) - 44px))}
}
.pp-compact .pp-header .pp-back{background:url('game-art/pupil-pursuit-frame-v1-back.webp') center/100% 100% no-repeat}
.pp-compact.pp-first-level .pp-header-sound{background:url('game-art/pupil-pursuit-frame-v1-sound.webp') center/100% 100% no-repeat}
.pp-compact.pp-first-level .pp-doctor-select{background:url('game-art/pupil-pursuit-frame-v1-doctor.webp') center/100% 100% no-repeat}

/* Readable live HUD: reflow matching blank cabinet wells inside the same header. */
.pp-compact.pp-first-level .pp-header:before{content:'';display:block;position:absolute;inset:auto 96px 3px 56px;height:32px;border:0;border-radius:0;box-shadow:none;background:url('game-art/pupil-pursuit-frame-v1-header.webp') 14.608% 83.333%/853% 237.143% no-repeat;pointer-events:none}
.pp-compact.pp-first-level .pp-score,.pp-compact.pp-daily-best .pp-score{left:56px;right:96px;bottom:3px;width:auto;height:32px;font:900 16px/1 system-ui;background:none}
.pp-compact.pp-first-level:not(.pp-daily-best) .pp-score{right:auto;width:calc((100% - 160px)/2);height:23px;bottom:3px;background:url('game-art/pupil-pursuit-frame-v1-header.webp') 41.609% 82.883%/646.212% 301.818% no-repeat}
.pp-compact.pp-daily-best .pp-score small{display:block;position:absolute;top:0;left:0;width:calc((100% - 8px)/2);height:8px;font:800 8px/1 system-ui;color:#dbf3f6;text-align:center;letter-spacing:.4px}
.pp-compact.pp-daily-best .pp-score small:nth-of-type(2){left:auto;right:0}
.pp-compact.pp-daily-best .pp-score strong{left:0;bottom:0;width:calc((100% - 8px)/2);height:23px;font:900 16px/1 system-ui;letter-spacing:-.3px;background:url('game-art/pupil-pursuit-frame-v1-header.webp') 41.609% 82.883%/646.212% 301.818% no-repeat}
.pp-compact.pp-daily-best .pp-score [data-best-score]{left:auto;right:0;width:calc((100% - 8px)/2)}
.pp-compact.pp-first-level .pp-lives{top:17.5cqw;height:22px;width:24%;left:65%;align-items:center}
.pp-compact.pp-first-level .pp-lives canvas{flex:0 1 22px;width:22px;height:22px;max-width:22px;filter:drop-shadow(0 1px 2px #000)}
/* Local current cabinet takes the whole GameStage host. Legacy .ar-board adds8px. */
.gs-host:has(>.pp-game.pp-compact){margin:0;padding:0;box-sizing:border-box;overflow:hidden}
/* Current cabinet pause is bare artwork over its quiet field; header Play resumes. */
.pp-compact.pp-first-level .pp-paused-overlay{padding:0;background:none;backdrop-filter:none}
.pp-compact .pp-paused-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;width:100%;border:0;padding:0;background:none;box-shadow:none}
.pp-compact .pp-paused-label{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pp-compact .pp-paused-art{display:block;width:min(70cqw,270px);height:auto;max-height:120px;object-fit:contain;pointer-events:none}
.pp-compact .pp-paused-mark [data-pp=level-choice]{display:block;width:160px;min-height:44px;margin:0;padding:10px 8px;border:0;border-radius:0;background:url('game-art/pupil-pursuit-frame-v1-header.webp') 41.609% 82.883%/646.212% 301.818% no-repeat;box-shadow:none;color:#ffe1a0;font:800 15px/1 system-ui;touch-action:manipulation}

/* Paused controls are sibling buttons; only the central plaque resumes. */
.pp-pause-resume{display:block;width:min(70cqw,270px);min-height:44px;padding:0;border:0;background:none;cursor:pointer;touch-action:manipulation}
.pp-pause-resume .pp-paused-art{width:100%;height:auto;max-height:190px;object-fit:contain;pointer-events:none}
.pp-paused-label{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pp-pause-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:min(92%,290px)}
.pp-pause-control{display:grid;place-items:center;flex:1;min-width:44px;min-height:48px;padding:0;border:0;background:none;cursor:pointer;touch-action:manipulation}
.pp-pause-control img{display:block;pointer-events:none;max-width:100%;width:78px;height:64px;object-fit:contain}
.pp-pause-resume:focus-visible,.pp-pause-control:focus-visible{outline:3px solid #ffe1a0;outline-offset:3px;border-radius:8px}
.pp-paused-mark,.pp-paused-overlay .pp-panel{gap:14px}
@media(max-height:650px){.pp-pause-resume .pp-paused-art{max-height:125px}.pp-pause-actions{gap:8px}.pp-pause-control img{height:48px}}

/* Keep lettering plaques wide while the round sound control has its own slot. */
.pp-pause-control:not([data-pp=sound]){flex:1.5}
.pp-pause-control img{width:100%}

/* Current pause art is status text; normal footer speaker and header Play stay live. */
.pp-compact h2.pp-pause-resume{margin:0;cursor:default;}
