:root{
  --bg:#ece7ff;--ink:#16101f;--paper:#fff;--violet:#8b5cf6;--pink:#ff4d97;--teal:#14d6c4;--yellow:#ffd633;--lime:#b4e82a;--orange:#ff7a3d;
  --bd:3px solid var(--ink);--sh:6px 6px 0 var(--ink);--sh-lg:9px 9px 0 var(--ink);--sh-sm:4px 4px 0 var(--ink);
  --display:"Syne",Arial,sans-serif;--sans:"Space Grotesk",Arial,sans-serif;--mono:"DM Mono",Consolas,monospace
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5;background-image:radial-gradient(var(--ink) 1.1px,transparent 1.1px);background-size:26px 26px;background-position:-13px -13px}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{background:var(--yellow)}
.marquee{overflow:hidden;white-space:nowrap;background:var(--ink);color:var(--bg);border-bottom:var(--bd);padding:9px 0}.marquee-track{display:inline-flex;gap:40px;padding-left:40px;font:500 12px var(--mono);letter-spacing:.1em;animation:scroll 26s linear infinite}@keyframes scroll{to{transform:translateX(-50%)}}
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 26px;background:var(--bg);border-bottom:var(--bd)}.logo{display:flex;align-items:center;gap:10px;font:800 22px var(--display)}.logo-icon{display:grid;place-items:center;width:46px;height:46px;background:var(--yellow);border:var(--bd);box-shadow:var(--sh-sm);transform:rotate(-4deg);overflow:hidden}.logo-icon svg{width:40px;height:40px}.px-ink{fill:var(--ink)}.px-pink{fill:var(--pink)}.main-nav{display:flex;gap:6px}.main-nav a{padding:8px 14px;border:2px solid transparent;font:500 13px var(--mono)}.main-nav a:hover{border-color:var(--ink);background:var(--paper)}.main-nav a.active{background:var(--violet);color:#fff;border-color:var(--ink);box-shadow:var(--sh-sm)}.audio-quick{display:flex;align-items:center;gap:9px;padding:10px 15px;background:var(--pink);border:var(--bd);box-shadow:var(--sh-sm);font:800 13px var(--display)}.audio-quick:hover{transform:translate(-2px,-2px);box-shadow:var(--sh)}.audio-dot{display:grid;place-items:center;min-width:38px;height:24px;padding:0 7px;border-radius:999px;background:var(--ink);color:#fff;font:500 10px var(--mono)}.audio-dot.on{background:#047857}
.hero{max-width:1280px;margin:auto;padding:42px 26px 30px;display:grid;grid-template-columns:1fr 300px;gap:26px}.hero-main{position:relative}.hero-sticker{position:absolute;right:20px;top:-6px;z-index:2;padding:12px 14px;background:var(--lime);border:var(--bd);box-shadow:var(--sh-sm);font:800 16px/.95 var(--display);text-align:center;transform:rotate(8deg)}.hero-title{margin:0;font:800 clamp(3.2rem,10vw,8rem)/.86 var(--display);letter-spacing:-.04em}.hero-title .outline{color:transparent;-webkit-text-stroke:3px var(--ink)}.hero-sub{max-width:650px;margin:24px 0 0;font-size:17px;font-weight:500}.hero-sub b{background:var(--yellow);padding:0 5px}.hero-card{display:flex;flex-direction:column;padding:18px;background:var(--violet);color:#fff;border:var(--bd);box-shadow:var(--sh)}.hc-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1.5px solid rgba(255,255,255,.3);font:500 12px var(--mono)}.hc-big{margin-top:auto;padding-top:20px;font:800 2.7rem/1 var(--display)}.hc-cat{font-size:13px;opacity:.85}
.control-deck,.player-shell,.library-section,.help-grid{max-width:1280px;margin-left:auto;margin-right:auto}.control-deck{padding:18px 26px 20px;background:var(--paper);border-top:var(--bd);border-bottom:var(--bd)}.control-field label{display:block;margin-bottom:6px;font:700 13px var(--mono)}.control-field select,.library-tools input{width:100%;min-height:48px;padding:10px 13px;background:#fff;border:var(--bd);color:var(--ink);font-weight:600}.control-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.btn{min-height:44px;padding:10px 15px;border:var(--bd);box-shadow:var(--sh-sm);color:var(--ink);font:800 12px var(--display);letter-spacing:.03em}.btn:hover{transform:translate(-2px,-2px);box-shadow:var(--sh)}.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn-pink{background:var(--pink)}.btn-yellow{background:var(--yellow)}.btn-teal{background:var(--teal)}.btn-lime{background:var(--lime)}.btn-violet{background:var(--violet);color:#fff}.btn-orange{background:var(--orange)}.status{margin:13px 0 0;padding:10px 12px;background:#f8f7ff;border:2px dashed var(--ink);font-size:13px}.status.ready{background:#dffbf3}.status.warn{background:#fff1c7}.status.error{background:#ffe1e1}
.player-shell{position:relative;margin-top:26px;background:var(--paper);border:var(--bd);box-shadow:var(--sh-lg);overflow:hidden}.player-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:var(--ink);color:#fff;border-bottom:var(--bd)}.player-bar strong,.player-bar small{display:block}.player-bar strong{font:800 clamp(1rem,2.3vw,1.3rem) var(--display)}.player-bar small{margin-top:2px;color:#d8d0e5;font-size:12px}.eyebrow{font:500 11px var(--mono);letter-spacing:.13em}.badge{padding:7px 10px;background:var(--yellow);color:var(--ink);border:2px solid #fff;font:800 10px var(--mono);white-space:nowrap}.badge.ready{background:var(--lime)}.badge.warn{background:var(--orange)}.badge.error{background:var(--pink)}.frame-host{min-height:560px;background:#050505}.frame-host iframe{display:block;width:100%;height:min(74vh,760px);min-height:560px;border:0;background:#000}.start-panel{position:absolute;inset:72px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;background:linear-gradient(135deg,var(--violet),var(--pink));text-align:center}.start-panel.hidden{display:none}.start-panel h2{margin:12px 0 5px;font:800 2rem var(--display)}.start-panel p{max-width:540px;margin:0 0 15px;font-weight:600}.start-shape{display:grid;place-items:center;width:82px;height:82px;background:var(--yellow);border:var(--bd);box-shadow:var(--sh);font-size:32px;transform:rotate(-4deg)}
.library-section{padding:48px 26px 60px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.section-title h2{margin:3px 0 0;font:800 clamp(2.2rem,6vw,4.4rem)/.95 var(--display)}.section-title p{margin:0;padding:7px 11px;background:var(--yellow);border:var(--bd);box-shadow:var(--sh-sm);font:700 12px var(--mono)}.library-tools{display:grid;grid-template-columns:auto minmax(260px,480px);gap:15px;align-items:center;margin-bottom:22px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{padding:10px 16px;background:var(--paper);border:var(--bd);box-shadow:var(--sh-sm);font:800 12px var(--display)}.tab.active{background:var(--ink);color:#fff}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.game-card{--c:var(--paper);position:relative;min-width:0;min-height:188px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;padding:0;background:var(--c);border:var(--bd);box-shadow:var(--sh);text-align:left;overflow:hidden;transition:.15s}.game-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}.game-card.active{outline:5px solid var(--ink);outline-offset:-8px}.game-card.disabled{opacity:.58;cursor:not-allowed}.game-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 13px;border-bottom:var(--bd);background:#fff}.game-index{font:500 11px var(--mono)}.game-tag{padding:4px 7px;background:var(--ink);color:#fff;font:500 9px var(--mono);letter-spacing:.06em}.game-card-body{display:flex;gap:12px;align-items:center;padding:15px}.game-letter{display:grid;place-items:center;flex:0 0 auto;width:58px;height:58px;background:#fff;border:var(--bd);box-shadow:var(--sh-sm);font:800 18px var(--display);transform:rotate(-3deg)}.game-copy{min-width:0}.game-copy strong{display:block;font:800 clamp(.98rem,2vw,1.14rem)/1.15 var(--display);overflow-wrap:anywhere}.game-copy span{display:block;margin-top:6px;font:500 11px/1.35 var(--mono);opacity:.78;overflow-wrap:anywhere}.game-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 13px;border-top:2px solid var(--ink);font:500 10px var(--mono)}.game-card.active::after{content:"DIPILIH";position:absolute;right:8px;top:46px;padding:4px 7px;background:var(--lime);border:2px solid var(--ink);font:800 9px var(--mono);transform:rotate(4deg)}
.help-grid{padding:0 26px 64px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.help-card{padding:18px;border:var(--bd);box-shadow:var(--sh)}.help-card>span{font:800 12px var(--mono)}.help-card h3{margin:14px 0 7px;font:800 1.25rem var(--display)}.help-card p{margin:0;font-size:13px;font-weight:500}.c-yellow{background:var(--yellow)}.c-teal{background:var(--teal)}.c-pink{background:var(--pink)}.c-lime{background:var(--lime)}
.site-footer{display:grid;grid-template-columns:1fr 2fr;align-items:end;gap:28px;padding:36px 26px;background:var(--ink);color:#fff;border-top:var(--bd)}.ft-big{font:800 clamp(3rem,8vw,6rem)/.78 var(--display)}.ft-note{max-width:720px;font:500 12px/1.7 var(--mono);color:#d9d2e4}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-card{min-height:230px}.main-nav{display:none}.library-tools{grid-template-columns:1fr}.help-grid{grid-template-columns:repeat(2,1fr)}.frame-host,.frame-host iframe{min-height:480px}.site-footer{grid-template-columns:1fr}}
@media(max-width:620px){.site-header{padding:11px 14px}.logo{font-size:18px}.logo-icon{width:37px;height:37px}.audio-quick{padding:8px 10px}.hero{padding:30px 16px 24px}.hero-sticker{right:4px}.control-deck{padding:15px 16px}.control-actions{display:grid;grid-template-columns:1fr}.btn{width:100%}.player-shell{margin-left:12px;margin-right:12px}.player-bar{align-items:flex-start;flex-direction:column}.frame-host,.frame-host iframe{min-height:420px;height:62vh}.start-panel{inset:100px 0 0}.library-section{padding:38px 16px 50px}.section-title{align-items:flex-start;flex-direction:column}.game-grid{grid-template-columns:1fr}.help-grid{padding:0 16px 50px;grid-template-columns:1fr}.site-footer{padding:28px 16px}.hero-title .outline{-webkit-text-stroke:2px var(--ink)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.marquee-track{animation:none}.game-card,.btn{transition:none}}

[hidden]{display:none!important}
.recovery-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;background:var(--yellow);border-top:var(--bd);font-size:13px}.recovery-panel strong,.recovery-panel span{display:block}.recovery-panel span{margin-top:3px;opacity:.8}.recovery-actions{display:flex;flex-wrap:wrap;gap:8px}.mini-btn{padding:8px 10px;background:var(--ink);color:#fff;border:2px solid var(--ink);font:800 10px var(--display);letter-spacing:.04em}.mini-btn.alt{background:var(--violet)}.mini-btn.ghost{background:#fff;color:var(--ink)}.mini-btn:hover{transform:translateY(-1px)}
@media(max-width:720px){.recovery-panel{align-items:stretch;flex-direction:column}.recovery-actions{display:grid;grid-template-columns:1fr}.mini-btn{width:100%}}

/* V22 stable player/fullscreen additions */
.player-shell.pseudo-fullscreen{position:fixed!important;inset:0!important;z-index:999999!important;margin:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;border:0!important;box-shadow:none!important;background:#000!important}
.player-shell.pseudo-fullscreen .frame-host,.player-shell.pseudo-fullscreen .frame-host iframe{width:100%!important;height:calc(100dvh - 72px)!important;min-height:0!important}
body.playnexa-fullscreen-lock{overflow:hidden!important}
#audioUnlockMedia{display:none!important}

/* V23 — local-first player, modern vertical scroll, retro pointer and notification UI */
html{scrollbar-width:thin;scrollbar-color:var(--violet) #d8d0ff;scroll-padding-top:92px}
body{overflow-x:hidden;min-height:100dvh}
body::-webkit-scrollbar{width:15px}
body::-webkit-scrollbar-track{background:linear-gradient(180deg,#d8d0ff,#fff);border-left:2px solid var(--ink)}
body::-webkit-scrollbar-thumb{background:repeating-linear-gradient(45deg,var(--violet) 0 8px,var(--pink) 8px 16px);border:3px solid var(--ink);border-radius:0;box-shadow:inset 0 0 0 2px #fff}
body::-webkit-scrollbar-thumb:hover{background:repeating-linear-gradient(45deg,var(--teal) 0 8px,var(--yellow) 8px 16px)}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:6px;z-index:100000;background:rgba(22,16,31,.14);pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--teal),var(--violet));border-bottom:2px solid var(--ink);will-change:transform}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.toast-stack{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:999998;display:grid;gap:10px;width:min(430px,calc(100vw - 28px));pointer-events:none}.toast{display:grid;grid-template-columns:38px minmax(0,1fr) 30px;align-items:center;gap:10px;padding:11px 12px;background:#fff;border:var(--bd);box-shadow:var(--sh-lg);transform:translate3d(24px,18px,0) scale(.96);opacity:0;pointer-events:auto;transition:transform .22s steps(3,end),opacity .22s linear}.toast-in{transform:none;opacity:1}.toast-out{transform:translate3d(28px,0,0) scale(.96);opacity:0}.toast-icon{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:#fff;border:2px solid var(--ink);font:800 18px var(--display)}.toast p{margin:0;font:600 12px/1.45 var(--sans);overflow-wrap:anywhere}.toast button{display:grid;place-items:center;width:28px;height:28px;padding:0;background:#fff;border:2px solid var(--ink);font:800 18px/1 var(--display)}.toast-ready{background:#dcfce7}.toast-ready .toast-icon{background:#047857}.toast-warn{background:#fff7bf}.toast-warn .toast-icon{background:#b45309}.toast-error{background:#ffe0e7}.toast-error .toast-icon{background:#be123c}.toast-offline{background:#e5e7eb}.toast-offline .toast-icon{background:#374151}

.retro-cursor,.click-fx-layer{position:fixed;inset:0 auto auto 0;z-index:999999;pointer-events:none}.retro-cursor{width:24px;height:24px;margin:-12px 0 0 -12px;transition:opacity .12s linear;will-change:transform}.retro-cursor i{position:absolute;inset:5px;background:var(--yellow);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--pink);transform:rotate(45deg)}.retro-cursor b{position:absolute;inset:0;display:grid;place-items:center;font:800 15px var(--mono);color:var(--ink)}.retro-cursor.cursor-active{transform-origin:center}.retro-cursor.cursor-active i{background:var(--teal);box-shadow:4px 4px 0 var(--violet);animation:cursorPulse .45s steps(2,end) infinite}.retro-cursor.cursor-hidden{opacity:0}.has-retro-cursor,.has-retro-cursor *{cursor:none!important}@keyframes cursorPulse{50%{transform:rotate(45deg) scale(1.28)}}
.click-fx-layer{inset:0;width:100vw;height:100vh;overflow:hidden}.pixel-burst{position:absolute;width:1px;height:1px}.pixel-burst i{--angle:0deg;--distance:26px;position:absolute;left:-4px;top:-4px;width:8px;height:8px;background:var(--yellow);border:2px solid var(--ink);animation:pixelBurst .56s steps(5,end) forwards;transform:rotate(var(--angle)) translateX(0)}.pixel-burst i:nth-child(2n){background:var(--pink)}.pixel-burst i:nth-child(3n){background:var(--teal)}.pixel-burst b{position:absolute;left:10px;top:-26px;padding:2px 5px;background:var(--ink);color:#fff;font:800 9px var(--mono);letter-spacing:.08em;animation:clickLabel .5s steps(4,end) forwards}@keyframes pixelBurst{70%{opacity:1;transform:rotate(var(--angle)) translateX(var(--distance))}100%{opacity:0;transform:rotate(var(--angle)) translateX(calc(var(--distance) + 8px)) scale(.3)}}@keyframes clickLabel{0%{opacity:0;transform:translateY(5px) scale(.6)}30%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-18px)}}

button,.btn,.tab,.mini-btn,.game-card,.audio-quick{transition:transform .12s steps(2,end),box-shadow .12s steps(2,end),filter .12s linear}button:active,.btn:active,.tab:active,.mini-btn:active,.game-card:active,.audio-quick:active{transform:translate(4px,4px)!important;box-shadow:1px 1px 0 var(--ink)!important;filter:saturate(1.22)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:5px solid var(--yellow);outline-offset:3px}
.btn-local{background:linear-gradient(135deg,#fff 0 18%,var(--lime) 18% 82%,#fff 82%);color:var(--ink)}.mini-btn.local{background:var(--lime);color:var(--ink)}

.player-state-group{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.player-state{padding:7px 10px;background:#fff;border:2px solid var(--ink);font:800 10px var(--mono);letter-spacing:.06em}.player-state[data-state="loading"]{background:var(--yellow);animation:stateBlink .75s steps(2,end) infinite}.player-state[data-state="ready"]{background:var(--lime)}.player-state[data-state="failed"]{background:var(--pink)}.player-state[data-state="offline"]{background:#d1d5db}@keyframes stateBlink{50%{filter:invert(1)}}
.frame-host{position:relative;display:grid;place-items:stretch;width:100%;height:clamp(500px,72vh,900px);min-height:500px;background:linear-gradient(135deg,#080410,#20122e);overflow:hidden}.frame-host:empty::before{content:"PLAYER OFFLINE — TEKAN MULAI GAME";display:grid;place-items:center;padding:24px;color:#fff;font:800 clamp(1rem,2vw,1.45rem) var(--display);letter-spacing:.06em;text-align:center;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:24px 24px}.frame-host iframe{display:block;width:100%;height:100%;min-height:0;border:0;background:#05020a;color-scheme:dark;overscroll-behavior:contain}
.player-shell:fullscreen,.player-shell.pseudo-fullscreen{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;border:0!important;box-shadow:none!important;background:#05020a!important;z-index:999999!important}.player-shell:fullscreen .player-bar,.player-shell.pseudo-fullscreen .player-bar{min-height:72px}.player-shell:fullscreen .frame-host,.player-shell.pseudo-fullscreen .frame-host{height:auto!important;min-height:0!important;max-height:none!important}.player-shell:fullscreen .frame-host iframe,.player-shell.pseudo-fullscreen .frame-host iframe{width:100%!important;height:100%!important;min-height:0!important}.player-shell:fullscreen .start-panel,.player-shell.pseudo-fullscreen .start-panel{inset:72px 0 0}.playnexa-fullscreen-lock{overflow:hidden!important;overscroll-behavior:none}

.reveal{opacity:0;transform:translateY(28px) scale(.985);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1)}.reveal.revealed{opacity:1;transform:none}.game-card.reveal{transition-delay:calc((var(--reveal-order,0) % 8) * 28ms)}
.back-to-top{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:90000;padding:10px 12px;background:var(--yellow);border:var(--bd);box-shadow:var(--sh-sm);font:800 10px var(--display);letter-spacing:.08em;opacity:0;transform:translateY(20px);pointer-events:none}.back-to-top.show{opacity:1;transform:none;pointer-events:auto}

@media(max-width:900px){.frame-host{height:clamp(480px,68vh,760px);min-height:480px}.player-state-group{justify-content:flex-start}}
@media(max-width:620px){html{scroll-padding-top:76px}.toast-stack{right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:calc(100vw - 28px)}.toast{grid-template-columns:34px minmax(0,1fr) 28px;padding:9px}.frame-host{height:calc(100dvh - 210px);min-height:430px;max-height:720px}.player-shell:fullscreen .player-bar,.player-shell.pseudo-fullscreen .player-bar{min-height:92px;padding:10px 12px}.player-shell:fullscreen .frame-host,.player-shell.pseudo-fullscreen .frame-host{height:auto!important;min-height:0!important}.recovery-panel{max-height:38dvh;overflow:auto}.back-to-top{left:12px;bottom:12px}.retro-cursor{display:none}}
@media(orientation:landscape) and (max-height:650px){.player-shell:fullscreen .player-bar,.player-shell.pseudo-fullscreen .player-bar{min-height:58px;padding:7px 10px}.player-shell:fullscreen .player-bar small,.player-shell.pseudo-fullscreen .player-bar small{display:none}.player-shell:fullscreen .recovery-panel,.player-shell.pseudo-fullscreen .recovery-panel{position:absolute;left:0;right:0;bottom:0;z-index:3}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.retro-cursor,.click-fx-layer{display:none}.toast{transition:none}.player-state[data-state="loading"]{animation:none}}

.game-card.reveal.revealed:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}

/* V25 — mobile landscape, persistent saves, universal controller */
.player-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:linear-gradient(90deg,#fff7ed,#f5f3ff);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.player-tools .mini-btn{min-height:38px}.save-indicator{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.save-status,.storage-badge,.controller-status{padding:7px 9px;border:2px solid var(--ink);background:#fff;font:800 9px/1.2 var(--mono);letter-spacing:.04em}.save-status[data-state="saved"]{background:var(--lime)}.storage-badge[data-persistent="true"]{background:#bbf7d0}.storage-badge[data-persistent="false"]{background:#fef3c7}.controller-status[data-support="full"]{background:#ccfbf1}.controller-status[data-support="limited"]{background:#ffedd5}
#importSaveFile{display:none}

.rotate-prompt{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:rgba(5,2,10,.9);backdrop-filter:blur(9px)}.rotate-prompt[hidden]{display:none}.rotate-card{width:min(520px,100%);padding:22px;background:var(--yellow);border:4px solid var(--ink);box-shadow:10px 10px 0 var(--pink);text-align:center}.rotate-icon{display:block;font-size:60px;line-height:1;animation:rotatePhone 1.3s steps(4,end) infinite}.rotate-card h3{margin:10px 0 6px;font:800 clamp(1.2rem,4vw,2rem) var(--display)}.rotate-card p{margin:0 0 16px;font:700 13px/1.5 var(--sans)}.rotate-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}@keyframes rotatePhone{50%{transform:rotate(90deg)}}

.touch-controller{position:absolute;z-index:20;left:0;right:0;bottom:0;display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr);align-items:end;gap:12px;padding:12px max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));pointer-events:none;opacity:0;transform:translateY(18px);transition:opacity .18s linear,transform .18s steps(3,end)}.touch-controller[hidden]{display:none}.touch-controller.active{opacity:1;transform:none}.touch-controller button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;border:3px solid #fff;background:rgba(23,17,31,.78);color:#fff;box-shadow:4px 4px 0 rgba(0,0,0,.72);font:800 13px/1 var(--display);backdrop-filter:blur(5px)}.touch-controller button:active,.touch-controller button.pressed{transform:translate(3px,3px)!important;box-shadow:1px 1px 0 #000!important;background:var(--pink);color:var(--ink)}
.controller-dpad{position:relative;width:150px;height:150px;justify-self:start}.controller-dpad button{position:absolute;width:54px;height:54px}.controller-dpad [data-control="up"]{left:48px;top:0}.controller-dpad [data-control="down"]{left:48px;bottom:0}.controller-dpad [data-control="left"]{left:0;top:48px}.controller-dpad [data-control="right"]{right:0;top:48px}.controller-dpad::after{content:"+";position:absolute;left:51px;top:51px;display:grid;place-items:center;width:48px;height:48px;background:rgba(23,17,31,.72);border:3px solid #fff;color:#fff;font:800 30px var(--display)}
.controller-center{display:flex;gap:8px;align-items:flex-end;justify-content:center;padding-bottom:6px}.controller-center button{min-width:76px;height:34px;border-radius:999px;font-size:9px}.controller-actions{position:relative;width:190px;height:150px;justify-self:end}.controller-actions button{position:absolute;border-radius:50%;width:58px;height:58px}.controller-actions [data-control="a"]{right:5px;bottom:38px;background:rgba(132,204,22,.88);color:var(--ink)}.controller-actions [data-control="b"]{right:66px;bottom:5px;background:rgba(251,113,133,.88);color:var(--ink)}.controller-actions [data-control="x"]{right:66px;bottom:72px;background:rgba(125,211,252,.88);color:var(--ink)}.controller-actions [data-control="y"]{right:127px;bottom:38px;background:rgba(253,224,71,.88);color:var(--ink)}.controller-actions [data-control="l"],.controller-actions [data-control="r"]{top:0;width:72px;height:30px;border-radius:8px;font-size:10px}.controller-actions [data-control="l"]{left:0}.controller-actions [data-control="r"]{right:0}

.player-shell.controller-visible .frame-host{position:relative}.player-shell:fullscreen .touch-controller,.player-shell.pseudo-fullscreen .touch-controller,.player-shell.forced-landscape .touch-controller{position:absolute}
body.playnexa-landscape-lock{overflow:hidden!important;overscroll-behavior:none!important}
.player-shell.forced-landscape{position:fixed!important;left:0!important;top:0!important;width:100dvh!important;height:100dvw!important;max-width:none!important;margin:0!important;z-index:1000000!important;transform-origin:top left!important;transform:rotate(90deg) translateY(-100%)!important;background:#05020a!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;border:0!important;box-shadow:none!important}.player-shell.forced-landscape .frame-host{height:auto!important;min-height:0!important;max-height:none!important}.player-shell.forced-landscape .frame-host iframe{width:100%!important;height:100%!important}.player-shell.forced-landscape .player-tools{padding-block:6px}.player-shell.forced-landscape .player-bar{min-height:58px;padding:7px 10px}.player-shell.forced-landscape .player-bar small{display:none}

@media(max-width:900px){.player-tools{align-items:stretch}.save-indicator{width:100%;margin-left:0}.save-status,.storage-badge,.controller-status{flex:1;text-align:center}.touch-controller{grid-template-columns:150px minmax(110px,1fr) 180px}}
@media(max-width:620px){.player-tools{display:grid;grid-template-columns:1fr 1fr;padding:8px}.player-tools .mini-btn{width:100%;font-size:9px}.save-indicator{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.controller-status{grid-column:1/-1}.touch-controller{grid-template-columns:132px minmax(90px,1fr) 160px;gap:6px;padding:8px}.controller-dpad{width:132px;height:132px}.controller-dpad button{width:48px;height:48px}.controller-dpad [data-control="up"]{left:42px}.controller-dpad [data-control="down"]{left:42px}.controller-dpad [data-control="left"]{top:42px}.controller-dpad [data-control="right"]{top:42px}.controller-dpad::after{left:45px;top:45px;width:42px;height:42px}.controller-actions{width:160px;height:132px}.controller-actions button{width:50px;height:50px}.controller-actions [data-control="a"]{bottom:34px}.controller-actions [data-control="b"]{right:55px}.controller-actions [data-control="x"]{right:55px;bottom:64px}.controller-actions [data-control="y"]{right:110px;bottom:34px}.controller-actions [data-control="l"],.controller-actions [data-control="r"]{width:62px;height:28px}.controller-center{gap:5px}.controller-center button{min-width:58px;height:30px;font-size:8px}}
@media(orientation:landscape) and (max-height:650px){.player-tools{position:absolute;left:8px;top:62px;z-index:24;width:auto;max-width:62vw;padding:5px;background:rgba(255,255,255,.86);border:2px solid var(--ink);opacity:.18;transition:opacity .2s}.player-tools:focus-within,.player-tools:hover{opacity:1}.player-tools .mini-btn{min-height:30px;padding:5px 7px}.save-indicator{display:none}.touch-controller{padding-top:4px;padding-bottom:max(5px,env(safe-area-inset-bottom))}.controller-dpad{transform:scale(.88);transform-origin:left bottom}.controller-actions{transform:scale(.88);transform-origin:right bottom}.controller-center{padding-bottom:0}}
@media(pointer:fine) and (min-width:901px){.touch-controller:not(.desktop-enabled){display:none!important}}
@media(prefers-reduced-motion:reduce){.rotate-icon{animation:none}.touch-controller{transition:none}}


/* V27 — V22 display fidelity + safe mobile extensions */
.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host{min-height:560px;background:#050505}
.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host iframe{display:block;width:100%;height:min(74vh,760px);min-height:560px;border:0;background:#000}
.touch-controller{visibility:hidden}
.touch-controller.active{visibility:visible}
.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .touch-controller.active{opacity:.94}
.rotate-prompt{pointer-events:auto}
.frame-host iframe{isolation:isolate}
@media(max-width:900px){.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host,.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host iframe{min-height:480px}}
@media(max-width:620px){.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host,.player-shell:not(:fullscreen):not(.pseudo-fullscreen):not(.forced-landscape) .frame-host iframe{min-height:420px;height:62vh}}
