/* PS2-only additions. Main page/layout styling comes from the existing shared Free Play Bay emulator stylesheet. */
#game.ps2-game-host{display:flex;align-items:flex-start;justify-content:center;background:#000}
#outputCanvas{display:block;width:100%!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain;outline:none;background:#000;image-rendering:auto!important}
.ps2-runtime-status{margin-top:10px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.03);color:var(--muted);font-size:.86rem;line-height:1.45}
.ps2-runtime-status.good{border-color:rgba(54,211,153,.4);color:#b7f7d8}.ps2-runtime-status.bad{border-color:rgba(255,107,122,.45);color:#ffc0c8}
.ps2-experimental-badge{display:inline-flex;align-items:center;margin-left:8px;padding:4px 8px;border:1px solid rgba(239,68,68,.35);border-radius:999px;background:rgba(239,68,68,.1);color:#fecaca;font-size:.62rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.ps2-save-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.ps2-save-card{padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.03)}.ps2-save-card strong{display:block;margin-bottom:5px}.ps2-save-card p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}
.ps2-settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.ps2-settings-actions button{width:100%}.ps2-disabled-note{margin-top:12px;padding:10px 12px;border:1px solid rgba(245,158,11,.32);border-radius:12px;background:rgba(245,158,11,.08);color:#fde68a;font-size:.8rem;line-height:1.45}
.ps2-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.ps2-map-row{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px}.ps2-map-row label{font-size:.8rem;font-weight:850}.ps2-map-row select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:10px;background:#101a2a;color:#fff;padding:0 8px}
#ps2-settings-dialog{width:min(620px,calc(100% - 18px));max-height:calc(100dvh - 18px);border:1px solid var(--line);border-radius:20px;padding:0;background:var(--panel);color:var(--text);box-shadow:0 30px 100px rgba(0,0,0,.6)}#ps2-settings-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.ps2-settings-shell{padding:18px;max-height:calc(100dvh - 18px);overflow:auto}
.runtime-control.ps2-l3,.runtime-control.ps2-r3{min-width:48px;height:31px;font-size:.58rem}
.runtime-control.kind-button.ps2-face{font-size:1.25rem}
.ps2-editor-node{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:48px;min-height:40px;padding:7px;border:2px solid rgba(255,255,255,.65);border-radius:11px;background:rgba(23,31,44,.9);color:#fff;font-size:.72rem;font-weight:900;touch-action:none;user-select:none;cursor:grab}.ps2-editor-node.round{border-radius:50%;width:52px;height:52px}.ps2-editor-node.selected{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.18)}
.ps2-memory-badge{display:inline-flex;align-items:center;gap:6px}.ps2-memory-dot{width:8px;height:8px;border-radius:50%;background:#64748b}.ps2-memory-dot.good{background:#36d399;box-shadow:0 0 8px rgba(54,211,153,.6)}
@media(max-width:560px){.ps2-save-grid,.ps2-settings-actions,.ps2-map-grid{grid-template-columns:1fr}.ps2-map-row{grid-template-columns:78px minmax(0,1fr)}}


/* v3: PS2 in-game layout parity with the existing Free Play Bay players. */
body.emulator-playing #game.ps2-game-host{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:hidden!important;background:#000!important}
body.emulator-playing #outputCanvas{display:block!important;margin:0 auto!important;background:#000!important;object-fit:fill!important}

@media (orientation:portrait){
  body.emulator-playing #emulator-view:not([hidden]){display:grid!important;grid-template-rows:auto auto minmax(0,1fr)!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;overflow:hidden!important}
  body.emulator-playing #emulator-view:not([hidden]) .emulator-topbar{grid-row:1!important;position:relative!important;inset:auto!important;z-index:40!important}
  body.emulator-playing #game.ps2-game-host{grid-row:2!important;width:100vw!important;min-width:100vw!important;max-width:100vw!important;height:75vw!important;min-height:75vw!important;max-height:75vw!important}
  body.emulator-playing #outputCanvas{width:100vw!important;min-width:100vw!important;max-width:100vw!important;height:75vw!important;min-height:75vw!important;max-height:75vw!important}
  body.emulator-playing .touch-controls-layer.portrait{grid-row:3!important;position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-height:0!important;overflow:hidden!important;background:radial-gradient(circle at 50% 15%,rgba(124,92,255,.08),transparent 42%),#05070b!important;border-top:1px solid rgba(255,255,255,.06)!important}
  body.emulator-playing .emulator-loading{inset:0!important;z-index:90!important}
}

/* One opt-in PS2 Quick Load slot. The game is copied only when the user asks. */
.ps2-quick-load{margin-top:14px;padding:14px;border:1px solid rgba(63,190,255,.24);border-radius:16px;background:linear-gradient(180deg,rgba(10,27,48,.72),rgba(6,16,30,.62))}
.ps2-quick-load-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.ps2-quick-load-heading h2{margin:2px 0 0;font-size:1.08rem}.ps2-quick-load-heading .eyebrow{margin:0}.ps2-quick-load-copy{margin:8px 0 12px;line-height:1.45}
.ps2-quick-empty{padding:13px;border:1px dashed rgba(255,255,255,.16);border-radius:12px;color:var(--muted);font-size:.84rem;text-align:center}
.ps2-quick-item{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}.ps2-quick-select{display:flex;align-items:center;gap:11px;min-width:0;min-height:60px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035);color:var(--text);text-align:left}.ps2-quick-select:active{transform:scale(.99)}.ps2-quick-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:rgba(41,182,246,.13);color:#55d6ff}.ps2-quick-file{display:flex;flex-direction:column;min-width:0;gap:3px;flex:1}.ps2-quick-file strong,.ps2-quick-file small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps2-quick-file small{color:var(--muted)}.ps2-quick-use{color:#8ce7ff;font-size:.78rem;font-weight:900}.ps2-quick-remove{border:1px solid rgba(255,105,120,.28);border-radius:12px;background:rgba(255,78,98,.08);color:#ff9cab;font-size:1.35rem}.ps2-quick-actions{margin-top:10px}.ps2-quick-actions>button{width:100%}.ps2-quick-progress{margin-top:10px;display:grid;gap:6px}.ps2-quick-progress[hidden]{display:none!important}.ps2-quick-progress-track{height:7px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.ps2-quick-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#6ee7b7);transition:width .12s linear}.ps2-quick-progress-text,.ps2-quick-storage-note{color:var(--muted);font-size:.76rem;line-height:1.4}.ps2-quick-storage-note{margin:9px 2px 0}

/* Playable Free Play Bay runner shown while the PS2 game reaches rendered frames. */
.ps2-boot-card{width:min(430px,calc(100vw - 28px));text-align:center;overflow:hidden}.ps2-boot-card>strong{display:block;font-size:1.12rem}.ps2-boot-card>p:not(.eyebrow){margin:6px auto 12px;max-width:340px}
.ps2-runner-stage{position:relative;width:min(350px,82vw);height:118px;margin:14px auto 8px;overflow:hidden;border:1px solid rgba(73,198,255,.22);border-radius:14px;background:linear-gradient(180deg,#071426 0 70%,#09101a 70%);box-shadow:inset 0 0 30px rgba(36,145,255,.06);touch-action:manipulation;cursor:pointer;user-select:none;-webkit-user-select:none}
.ps2-runner-stage:active{border-color:rgba(115,232,255,.48)}
.ps2-runner-ground{position:absolute;left:0;right:0;bottom:20px;height:4px;background:repeating-linear-gradient(90deg,#2bb7e8 0 15px,transparent 15px 24px);animation:ps2-ground .55s linear infinite}.ps2-runner-ground:after{content:"";position:absolute;left:0;right:0;top:8px;height:1px;background:rgba(255,255,255,.12)}
.ps2-runner-hero{position:absolute;left:52px;bottom:25px;width:42px;height:38px;display:grid;place-items:center;border:3px solid #73e8ff;border-radius:5px 9px 4px 4px;background:#0d263d;color:#dffaff;font:900 10px/1 ui-monospace,monospace;letter-spacing:.04em;box-shadow:0 0 18px rgba(58,202,255,.28);will-change:transform}.ps2-runner-hero:before{content:"";position:absolute;right:-7px;top:8px;width:7px;height:6px;border-radius:0 3px 3px 0;background:#72e8ff}.ps2-runner-hero b{position:absolute;bottom:-9px;width:5px;height:10px;border-radius:0 0 2px 2px;background:#83d9f5;animation:ps2-leg .18s steps(2,end) infinite}.ps2-runner-hero .leg-a{left:8px}.ps2-runner-hero .leg-b{right:8px;animation-delay:.09s}
.ps2-runner-obstacle{position:absolute;left:0;bottom:24px;width:17px;height:27px;border:3px solid #ffc75f;border-radius:3px;background:#4b3211;box-shadow:0 0 10px rgba(255,188,74,.18);will-change:transform}.ps2-runner-obstacle:before{content:"";position:absolute;left:3px;top:-9px;width:5px;height:9px;background:#ffc75f}.ps2-runner-obstacle.obstacle-b{transform-origin:bottom}
.ps2-runner-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#8bdcff;opacity:.7;animation:ps2-star 1.7s linear infinite}.ps2-runner-stars i:nth-child(1){top:18px;left:80%}.ps2-runner-stars i:nth-child(2){top:34px;left:48%;animation-delay:.35s}.ps2-runner-stars i:nth-child(3){top:12px;left:26%;animation-delay:.8s}.ps2-runner-stars i:nth-child(4){top:46px;left:92%;animation-delay:1.2s}
.ps2-runner-message{position:absolute;top:8px;left:50%;transform:translateX(-50%);padding:3px 8px;border-radius:999px;background:rgba(3,12,24,.72);border:1px solid rgba(255,255,255,.08);color:#aeeeff;font:800 9px/1.4 ui-monospace,monospace;letter-spacing:.08em;pointer-events:none;opacity:.92}
.ps2-runner-message.crash{color:#ffd08a;border-color:rgba(255,199,95,.28)}
.ps2-runner-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 9px}.ps2-runner-score{min-width:82px;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:999px;color:var(--muted);font-size:.74rem}.ps2-runner-score strong{color:#9eeeff}.ps2-runner-jump{min-width:105px!important;min-height:39px!important;padding:8px 18px!important;border-radius:999px!important;touch-action:manipulation}.ps2-runner-jump:active{transform:translateY(1px) scale(.98)}
.ps2-loading-meta{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:.72rem}.ps2-loading-meta span:first-child{min-width:36px;padding:3px 7px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#9eeeff;font-weight:900}.ps2-loading-meta span:last-child{max-width:300px}
@keyframes ps2-ground{to{background-position:-24px 0}}@keyframes ps2-leg{0%{transform:translateY(0)}100%{transform:translateY(3px)}}@keyframes ps2-star{from{transform:translateX(30px);opacity:0}20%{opacity:.8}to{transform:translateX(-110px);opacity:0}}
@media (prefers-reduced-motion:reduce){.ps2-runner-ground,.ps2-runner-stars i,.ps2-runner-hero b{animation-duration:1.8s!important}}

.ps2-loading-show-now{margin:10px auto 0!important;min-width:132px}.ps2-loading-show-now[hidden]{display:none!important}
