/* Pulau Santai (game "pulau"), tahap 1 + v779 (penanda ruang) + v780 (obrolan) + v781 (mancing). Layar penuh seperti Semesta Harian. */
.gl-g-pulau{background:#1d86c8;color:#fff}
.gl-g-pulau .gl-isi{padding:0;overflow:hidden}
.gl-g-pulau .gl-isi-d{position:absolute;inset:0;max-width:none;margin:0}
.ps{position:absolute;inset:0;overflow:hidden;background:#1d86c8;-webkit-user-select:none;user-select:none}
.ps-cv{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.ps-cv:active{cursor:grabbing}
.ps-chip{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 74px);transform:translateX(-50%);max-width:calc(100% - 28px);padding:8px 14px;border-radius:999px;background:rgba(43,19,48,.82);color:#fff;font:600 13px/1.25 system-ui,sans-serif;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.25);pointer-events:none}
.ps-chip[hidden]{display:none}
.ps-hint{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);padding:8px 12px;border-radius:14px;background:rgba(255,255,255,.88);color:#2B1330;font:500 12px/1.3 system-ui,sans-serif;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.2);pointer-events:none;transition:opacity .6s ease}
.ps-hint b{display:block;font-size:14px;margin-bottom:2px;color:#C00E6E}
.ps-hint span{display:block}
.ps-hint.ps-lenyap{opacity:0}
@media (prefers-reduced-motion:reduce){.ps-hint{transition:none}}

.ps-aksi{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 126px);transform:translateX(-50%);padding:11px 20px;border:0;border-radius:999px;background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff;font:700 14px system-ui,sans-serif;box-shadow:0 8px 20px rgba(192,14,110,.45);cursor:pointer;touch-action:manipulation}
.ps-aksi[hidden],.ps-emobar[hidden]{display:none}
.ps-emo{position:absolute;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:24px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.25);cursor:pointer;touch-action:manipulation}
.ps-emobar{position:absolute;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 140px);display:flex;flex-direction:column;gap:6px;padding:6px;border-radius:26px;background:rgba(255,255,255,.92);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.ps-eb{width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:24px;line-height:1;cursor:pointer;touch-action:manipulation}
.ps-eb:active{background:rgba(255,29,134,.15)}

/* v779: penanda ruang + jumlah pemain (tengah atas, di bawah poni) */
.ps-online{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 12px);transform:translateX(-50%);max-width:calc(100% - 150px);padding:5px 12px;border-radius:999px;background:rgba(43,19,48,.7);color:#fff;font:600 12px/1.25 system-ui,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:auto;border:0;cursor:pointer}
.ps-online[hidden]{display:none}

/* v780: obrolan gelembung teks */
.ps-cbtn{position:absolute;right:70px;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:22px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.25);cursor:pointer;touch-action:manipulation}
.ps-cbtn[hidden],.ps-cbar[hidden]{display:none}
.ps-cbar{position:absolute;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);z-index:3;display:flex;gap:8px;padding:8px;border-radius:999px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(0,0,0,.3)}
.ps-cin{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#2B1330;font:500 16px system-ui,sans-serif;padding:6px 10px}
.ps-ckirim{border:0;border-radius:999px;padding:0 18px;background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff;font:700 14px system-ui,sans-serif;cursor:pointer;touch-action:manipulation}

/* v781: tombol mancing (posisi sama dengan tombol duduk; keduanya tidak pernah tampil bersamaan) */
.ps-pancing{background:linear-gradient(135deg,#1FB6C9,#0B7FA8);box-shadow:0 8px 20px rgba(11,127,168,.4)}
.ps-pancing[hidden]{display:none}

/* v786 (POV-3): tombol kamera dan lompat */
.ps-kam,.ps-lonc{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:22px;line-height:1;box-shadow:0 4px 12px rgba(43,19,48,.25);cursor:pointer;touch-action:manipulation}
.ps-kam{right:126px}
.ps-lonc{left:14px;width:56px;height:56px;background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff;font-size:24px}

.ps-rm{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,6,26,.62)}
.ps-rm[hidden]{display:none}
.ps-rm-k{width:100%;max-width:400px;max-height:100%;overflow:auto;padding:16px;border-radius:20px;background:#fff;color:#2b1330;font:500 14px/1.4 system-ui,sans-serif;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.ps-rm-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:17px}
.ps-rm-x{width:36px;height:36px;border:0;border-radius:50%;background:#f3e6f1;color:#2b1330;font-size:16px;cursor:pointer}
.ps-rm-k h4{margin:14px 0 6px;font-size:13px;color:#C00E6E;text-transform:uppercase;letter-spacing:.04em}
.ps-rm-utama{display:block;width:100%;padding:12px;border:0;border-radius:14px;background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff;font:700 15px system-ui,sans-serif;cursor:pointer}
.ps-rm-alt{background:linear-gradient(135deg,#1FB6C9,#127f8f)}
.ps-rm-list{display:grid;gap:6px;margin-top:8px;max-height:min(260px,38vh);overflow-y:auto;padding-right:2px;-webkit-overflow-scrolling:touch}
.ps-rm-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #ead6e6;border-radius:12px;background:#fff8fd;color:#2b1330;font:600 14px system-ui,sans-serif;cursor:pointer}
.ps-rm-item:disabled{opacity:.5;cursor:not-allowed}
.ps-rm-kosong,.ps-rm-cat{margin:4px 0 0;font-size:12px;color:#6b5470}
.ps-rm-baris{display:flex;gap:8px;margin-top:8px}
.ps-rm-baris input{flex:1;min-width:0;padding:11px 12px;border:1px solid #d9bfd5;border-radius:12px;font:700 15px system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#2b1330}
.ps-rm-baris button,.ps-rm-kode button{padding:0 16px;border:0;border-radius:12px;background:#2b1330;color:#fff;font:700 14px system-ui,sans-serif;cursor:pointer}
.ps-rm-now{margin:0;font-weight:700}
.ps-rm-kode{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:10px 12px;border-radius:12px;background:#fff0f8;border:1px dashed #FF1D86}
.ps-rm-kode b{font-size:24px;letter-spacing:.14em;color:#C00E6E}
.ps-rm-kode button{height:38px}
.ps-rm-msg{min-height:18px;margin:10px 0 0;font-size:13px;color:#C00E6E;font-weight:600}

/* v794: kolom chat (riwayat obrolan, pratinjau, lencana belum dibaca) */
.ps-cbadge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#FF1D86;color:#fff;font:700 11px/18px system-ui,sans-serif;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.3);pointer-events:none}
.ps-cbadge[hidden],.ps-clog[hidden]{display:none}
.ps-clog{position:absolute;left:10px;right:10px;max-width:520px;margin:0 auto;bottom:calc(env(safe-area-inset-bottom,0px) + 72px);z-index:3;max-height:min(42%,320px);display:flex;flex-direction:column;border-radius:18px;background:rgba(255,255,255,.96);color:#2B1330;box-shadow:0 8px 22px rgba(0,0,0,.3);overflow:hidden}
.ps-clog-h{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 4px 14px;font:700 13px system-ui,sans-serif;color:#C00E6E}
.ps-clog-x{width:30px;height:30px;border:0;border-radius:50%;background:#f3e6f1;color:#2B1330;font-size:13px;cursor:pointer;touch-action:manipulation}
.ps-clog-l{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:2px 14px 10px}
.ps-clog-m{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;padding:3px 0;font:500 14px/1.35 system-ui,sans-serif;word-break:break-word}
.ps-clog-n{font-weight:700}
.ps-clog-me .ps-clog-n{color:#C00E6E}
.ps-clog-t{flex:1 1 auto;min-width:0}
.ps-clog-w{font-size:11px;color:#8a7490}
.ps-clog-kosong{margin:6px 0;font:500 13px system-ui,sans-serif;color:#6b5470}
.ps-mini{position:absolute;left:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 150px);display:flex;flex-direction:column;gap:4px;max-width:min(72%,300px);pointer-events:none}
.ps-mini-m{padding:5px 10px;border-radius:12px;background:rgba(43,19,48,.66);color:#fff;font:500 12px/1.3 system-ui,sans-serif;transition:opacity .5s;word-break:break-word}
.ps-mini-m .ps-clog-n{color:#ffd0ea!important;margin-right:5px}
.ps-mini-m .ps-clog-w{display:none}
.ps-mini-hilang{opacity:0}
@media (prefers-reduced-motion:reduce){.ps-mini-m{transition:none}}

/* v795: toko (saldo top up) */
.ps-tkbtn{position:absolute;right:126px;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:22px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.25);cursor:pointer;touch-action:manipulation}
.ps-tkbtn[hidden],.ps-tk[hidden]{display:none}
.ps-emobar{max-height:min(60%,360px);overflow-y:auto;overscroll-behavior:contain}
.ps-eb-toko{font-size:20px;opacity:.75}
.ps-tk-i{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;border:1px solid #ead6e6;border-radius:12px;background:#fff8fd}
.ps-tk-ik{font-size:22px;line-height:1.1;max-width:84px;word-break:break-all}
.ps-tk-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ps-tk-t small{font-size:12px;color:#6b5470;line-height:1.3}
.ps-tk-b{flex:none;padding:9px 12px;border:0;border-radius:999px;background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff;font:700 13px system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.ps-tk-b:disabled{background:#e6d9e4;color:#6b5470;cursor:default}
/* v796: tombol masuk Toko Pancing (dekat bangunan) */
.ps-tp{background:linear-gradient(135deg,#F59E0B,#D9480F);box-shadow:0 8px 20px rgba(217,72,15,.4)}
.ps-tp[hidden]{display:none}

/* ================================================================
   v837: KOLOM CHAT ringkas di POJOK KANAN BAWAH (gaya log obrolan game: gelap transparan, teks kecil), tidak lagi memanjang dari ujung ke ujung.
   Lebar maks 300 px, tinggi log maks ~150 px; kolom ketik menempel di bawah log. Selama terbuka, tombol emoji/obrolan/toko disembunyikan agar tidak tertimpa.
   Pratinjau pesan baru (saat panel tertutup) juga pindah ke kanan bawah. Mau pindah ke kiri bawah: ganti `right` menjadi `left` di empat aturan ini.
   ================================================================ */
.ps-cbar{left:auto;right:10px;width:min(300px,calc(100% - 20px));bottom:calc(env(safe-area-inset-bottom,0px) + 10px);box-sizing:border-box;gap:6px;padding:4px;border-radius:12px;background:rgba(24,10,32,.78);box-shadow:0 6px 16px rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.ps-cin{color:#fff;font:500 16px system-ui,sans-serif;padding:4px 8px}
.ps-cin::placeholder{color:rgba(255,255,255,.55)}
.ps-ckirim{border-radius:9px;padding:0 14px;font-size:13px}
.ps-clog{left:auto;right:10px;width:min(300px,calc(100% - 20px));max-width:none;margin:0;box-sizing:border-box;bottom:calc(env(safe-area-inset-bottom,0px) + 56px);max-height:min(30%,160px);border-radius:12px;background:rgba(24,10,32,.55);color:#fff;box-shadow:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.ps-clog-h{padding:3px 4px 0 10px;font:700 11px system-ui,sans-serif;color:rgba(255,255,255,.75)}
.ps-clog-x{width:22px;height:22px;font-size:11px;background:rgba(255,255,255,.18);color:#fff}
.ps-clog-l{padding:0 10px 6px}
.ps-clog-m{padding:1px 0;font:500 12.5px/1.35 system-ui,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.ps-clog-me .ps-clog-n{color:#ffd0ea}
.ps-clog-w{color:rgba(255,255,255,.55);font-size:10px}
.ps-clog-kosong{color:rgba(255,255,255,.75);font-size:12px}
.ps-mini{left:auto;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 142px);align-items:flex-end;max-width:min(62%,260px)}

/* v838: tombol zoom (+ masuk/POV, - keluar/karakter utuh) */
.ps-zm{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:3}
.ps-zmb{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#2B1330;font:700 22px/1 system-ui,sans-serif;box-shadow:0 4px 12px rgba(43,19,48,.25);cursor:pointer;touch-action:manipulation}
.ps-zmb:active{background:#fff;transform:scale(.94)}

/* v841: KOLOM CHAT di KIRI bawah, kotak (sudut kecil), transparan.
   Saat mengetik: latar lebih pekat. 3 detik setelah ada chat/berhenti mengetik: latar pudar sendiri (.ps-pudar).
   Saat kursor/jari diarahkan ke chat yang pudar: tulisan jelas lagi. Bergeser 76 px dari kiri agar tidak menutup tombol lompat. */
.ps-cbar,.ps-clog{left:76px;right:auto;width:min(300px,calc(100% - 86px));border-radius:4px;transition:background-color .5s,box-shadow .5s,backdrop-filter .5s}
.ps-clog{background:rgba(24,10,32,.42);-webkit-backdrop-filter:none;backdrop-filter:none}
.ps-cbar{background:rgba(24,10,32,.42);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.ps-cin,.ps-clog-x,.ps-ckirim{border-radius:3px}
.ps-ketik .ps-clog,.ps-ketik .ps-cbar{background:rgba(24,10,32,.82)}
.ps-clog-h,.ps-clog-l,.ps-cin,.ps-ckirim{transition:opacity .5s}
.ps-pudar.ps-clog,.ps-pudar.ps-cbar{background:rgba(24,10,32,0);box-shadow:none}
.ps-pudar .ps-clog-h,.ps-pudar .ps-clog-l,.ps-pudar .ps-cin,.ps-pudar .ps-ckirim,.ps-pudar.ps-cin{opacity:.5}
.ps-pudar .ps-clog-m,.ps-pudar .ps-clog-kosong{text-shadow:0 0 3px #000,0 1px 2px #000}
.ps-pudar.ps-clog:hover,.ps-pudar.ps-cbar:hover,.ps-pudar.ps-sentuh{background:rgba(24,10,32,.3)}
.ps-pudar.ps-clog:hover .ps-clog-h,.ps-pudar.ps-clog:hover .ps-clog-l,.ps-pudar.ps-cbar:hover .ps-cin,.ps-pudar.ps-cbar:hover .ps-ckirim,.ps-pudar.ps-sentuh .ps-clog-h,.ps-pudar.ps-sentuh .ps-clog-l,.ps-pudar.ps-sentuh .ps-cin,.ps-pudar.ps-sentuh .ps-ckirim{opacity:1}
@media (hover:none){.ps-pudar.ps-clog{pointer-events:none}} /* HP: log pudar tidak menghalangi joystick */
.ps-mini{left:10px;right:auto;align-items:flex-start;bottom:calc(env(safe-area-inset-bottom,0px) + 150px)}
.ps-mini-m{border-radius:4px}

/* v842: log chat menampilkan 10 baris terbaru saja (10 x (12,5px x 1,35 + 2px) = ~189 px); pesan lama dilihat dengan menggulir. Di layar pendek dibatasi 45% tinggi. */
.ps-clog{max-height:none}
.ps-clog-l{min-height:0;max-height:min(189px,45vh);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.45) transparent}
.ps-clog-l::-webkit-scrollbar{width:5px}
.ps-clog-l::-webkit-scrollbar-thumb{background:rgba(255,255,255,.4);border-radius:3px}

/* v843: kolom chat selalu tampil di kiri (tanpa tombol chat/tutup/judul), 5 baris terbaru (5 x ~20,3 px = 102 px), sisanya digulir */
.ps-cbtn{display:none!important}
.ps-clog-h{display:none}
.ps-clog-l{max-height:min(102px,30vh)}

/* v843: di layar sempit/sedang kolom chat (kiri bawah) menimpa tombol kanan dan tombol aksi; semuanya dinaikkan di atas kolom chat */
@media (max-width:900px){
  .ps-aksi{bottom:calc(env(safe-area-inset-bottom,0px) + 176px)}
}
/* v852: antrean server penuh ("Menunggu ...N") */
.ps-antri{position:absolute;left:50%;top:max(64px,env(safe-area-inset-top,0px) + 56px);transform:translateX(-50%);z-index:29;display:flex;flex-direction:column;align-items:center;gap:4px;width:min(320px,calc(100% - 32px));padding:12px 14px;border-radius:16px;background:rgba(24,10,32,.82);color:#fff;text-align:center;font:500 12.5px/1.35 system-ui,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.ps-antri[hidden]{display:none}
.ps-antri-n{font-size:20px;letter-spacing:.02em;color:#ffd1ea}
.ps-antri-s{opacity:.9}
.ps-antri-b{margin-top:4px;padding:7px 18px;border:0;border-radius:12px;background:#fff;color:#2b1330;font:700 13px system-ui,sans-serif;cursor:pointer}
.ps-rm-penuh{background:#f6eef5;border-color:#d9bfd5}

/* v855: tombol ekspresi di KIRI kolom chat (ikon garis), popup ekspresi di atas kolom chat; tombol toko di HUD kanan atas (gaya sama dengan mic/suara) */
.ps-emo{position:static;flex:none;display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:rgba(255,255,255,.14);color:#fff;box-shadow:none;cursor:pointer;transition:background-color .2s,opacity .5s}
.ps-emo:hover,.ps-emo:active{background:rgba(255,255,255,.28)}
.ps-emo svg{width:20px;height:20px}
.ps-pudar .ps-emo{opacity:.5}
.ps-pudar.ps-cbar:hover .ps-emo,.ps-pudar.ps-sentuh .ps-emo{opacity:1}
.ps-emobar{left:76px;right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 60px);width:min(300px,calc(100% - 86px));box-sizing:border-box;flex-direction:row;flex-wrap:wrap;gap:4px;padding:6px;border-radius:10px;background:rgba(24,10,32,.9);max-height:min(50%,240px)}
.ps-emobar .ps-eb{background:rgba(255,255,255,.1);border-radius:8px;color:#fff}
.ps-emobar .ps-eb-toko svg{width:20px;height:20px}
.ps-tkhud{touch-action:manipulation}
.ps-tkhud[hidden]{display:none!important}
.ps-tk-lepas{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);right:12px;z-index:21}
.ps-emobar{z-index:6}
@media (max-width:560px){ /* HUD kanan atas kini 3 tombol (toko, suara, mic): lencana server turun ke bawahnya */
  .ps-online{top:calc(env(safe-area-inset-top,0px) + 58px);max-width:calc(100% - 24px)}
  .ps-antri{top:calc(env(safe-area-inset-top,0px) + 96px)}
}

/* v859: HP: log chat dipindah ke ATAS KIRI (di bawah lencana online) dan dikecilkan (lebar ~190 px, 3-4 baris, teks 10,5 px). Kolom ketik tetap di bawah tapi lebih kecil. Tombol aksi turun kembali karena log tidak lagi di bawah. */
@media (hover:none) and (pointer:coarse), (max-width:560px){
  .ps-clog{left:10px;right:auto;top:calc(env(safe-area-inset-top,0px) + 90px);bottom:auto;width:min(190px,calc(100% - 130px))}
  .ps-clog-l{max-height:min(66px,18vh);padding:0 6px 4px}
  .ps-clog-m{padding:0;font:500 10.5px/1.3 system-ui,sans-serif}
  .ps-clog-w{font-size:9px}
  .ps-clog-kosong{margin:4px 0;font-size:10.5px}
  .ps-cbar{left:76px;width:min(210px,calc(100% - 86px));padding:3px;gap:4px}
  .ps-cin{padding:3px 6px}
  .ps-ckirim{padding:0 10px;font-size:12px}
  .ps-emo{width:28px;height:28px}
  .ps-emo svg{width:18px;height:18px}
  .ps-emobar{width:min(210px,calc(100% - 86px))}
  .ps-aksi{bottom:calc(env(safe-area-inset-bottom,0px) + 86px)}
}

/* v862: tombol jongkok (di samping tombol lompat). HP: kiri bawah = gerak (joystick), kanan tengah = kamera, kanan bawah = lompat + jongkok; kolom ketik chat pindah ke ATAS KIRI (di bawah lencana online), log chat tepat di bawahnya. */
.ps-jok{position:absolute;left:80px;bottom:calc(env(safe-area-inset-bottom,0px) + 90px);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#2B1330;font-size:20px;line-height:1;box-shadow:0 4px 12px rgba(43,19,48,.25);cursor:pointer;touch-action:manipulation}
.ps-jok.ps-aktif{background:linear-gradient(135deg,#FF1D86,#C00E6E);color:#fff}
@media (hover:none) and (pointer:coarse), (max-width:560px){
  .ps-cbar{left:10px;right:auto;top:calc(env(safe-area-inset-top,0px) + 90px);bottom:auto;width:min(210px,calc(100% - 130px))}
  .ps-clog{top:calc(env(safe-area-inset-top,0px) + 132px)}
  .ps-emobar{left:10px;right:auto;top:calc(env(safe-area-inset-top,0px) + 132px);bottom:auto;width:min(210px,calc(100% - 130px))}
  .ps-lonc{left:auto;right:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 40px)}
  .ps-jok{left:auto;right:88px;bottom:calc(env(safe-area-inset-bottom,0px) + 44px)}
}

/* v863: tombol zoom +/- hanya di HP, di kanan bawah tepat di atas tombol lompat (kanan tengah tetap bebas untuk memutar kamera) */
.ps-zm{display:none}
@media (hover:none) and (pointer:coarse), (max-width:560px){
  .ps-zm{display:flex;top:auto;right:24px;bottom:calc(env(safe-area-inset-bottom,0px) + 112px);transform:none;gap:6px}
  .ps-zmb{width:42px;height:42px}
}

/* v864: lompat besar, jongkok kecil, terpisah, posisi bisa diatur (tahan lalu geser); komputer pakai Spasi/Shift (tombol disembunyikan) */
@media (hover:none) and (pointer:coarse), (max-width:560px){
  .ps-lonc{width:76px;height:76px;font-size:30px;left:auto;right:20px;bottom:calc(env(safe-area-inset-bottom,0px) + 44px)}
  .ps-jok{width:44px;height:44px;font-size:18px;left:auto;right:124px;bottom:calc(env(safe-area-inset-bottom,0px) + 64px)}
  .ps-zm{bottom:calc(env(safe-area-inset-bottom,0px) + 150px)}
}
@media (hover:hover) and (pointer:fine){ .ps-lonc,.ps-jok{display:none} }
.ps-mode-atur .ps-lonc,.ps-mode-atur .ps-jok{outline:2px dashed #fff;outline-offset:4px;touch-action:none}
.ps-atur{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);z-index:9;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;max-width:calc(100% - 40px);padding:10px 12px;border-radius:12px;background:rgba(24,10,32,.88);color:#fff;font:600 12.5px/1.3 system-ui,sans-serif;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.ps-atur[hidden]{display:none}
.ps-atur-b{border:0;border-radius:8px;padding:7px 12px;background:rgba(255,255,255,.2);color:#fff;font:700 12.5px system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.ps-atur-ok{background:linear-gradient(135deg,#FF1D86,#C00E6E)}

/* v916: level memancing di Toko Pancing */
.ps-lvk{margin:8px 0;padding:8px 10px;border-radius:12px;background:#fff6e0;color:#4a2a00;font-size:13px}.ps-lvk small{display:block;margin-top:3px;font-size:11px;color:#7a5a20}.ps-lvb{height:8px;border-radius:5px;background:#f0dcae;margin-top:5px;overflow:hidden}.ps-lvb i{display:block;height:100%;background:linear-gradient(90deg,#ffb300,#ff7a00);border-radius:5px;transition:width .4s}
/* v917: slot ikan */
.ps-slot{margin:6px 0;font-size:13px;font-weight:700;color:#4a2a00}.ps-slot-penuh{color:#b00020}

/* v920: tombol Mancing otomatis di atas tombol Mancing */
.ps-oto{margin-bottom:54px;padding:8px 16px;font-size:13px;background:linear-gradient(135deg,#6D5BD0,#3F2FA0);box-shadow:0 8px 20px rgba(63,47,160,.4)}
.ps-oto[hidden]{display:none}

/* v921: Album ikan (panel di dalam panel toko, mode album) */
.ps-al-lepas{right:62px}
.ps-al-kosong{opacity:.55}
.ps-al-b{margin-top:4px;height:6px}
.ps-al-ke{display:block;width:100%;margin-top:10px;text-align:center}

/* v922 (mancing tahap 6): panel Slot Ikan (kotak per ikan, klik = jual) + tombol 🎒 di HUD */
.ps-sl-lepas{right:112px}
.ps-sl-g{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}
.ps-sl-c{position:relative;aspect-ratio:1/1;min-height:48px;padding:0;border:1px solid #ead6e6;border-radius:12px;background:#fff8fd;color:#2b1330;font:700 12px system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:manipulation}
.ps-sl-c span{font-size:24px;line-height:1}
.ps-sl-c small{margin-top:1px;font-size:10px;font-weight:700;color:#7a5a20}
.ps-sl-isi{cursor:pointer;background:#e9f7ff;border-color:#9fd3f0}
.ps-sl-isi:hover,.ps-sl-isi:focus-visible{background:#d2eeff;border-color:#4aa8dd}
.ps-sl-isi:active{transform:scale(.94)}
.ps-sl-kosong{background:#faf4fa;border-style:dashed;cursor:default}
.ps-sl-kunci{background:#eee;border-color:#ddd;opacity:.55;font-size:14px;cursor:default}
.ps-sl-ke{display:block;width:100%;margin-top:10px;text-align:center}

/* v928 (renang tahap 1): penanda sedang berenang; tombol jongkok + lompat disembunyikan selama di air */
.ps-renchip{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 46px);transform:translateX(-50%);max-width:calc(100% - 28px);padding:5px 12px;border-radius:999px;background:rgba(18,92,140,.82);color:#fff;font:700 12px/1.25 system-ui,sans-serif;text-align:center;white-space:nowrap;pointer-events:none;z-index:6}
.ps-renchip[hidden]{display:none}
@media (max-width:560px){ .ps-renchip{top:calc(env(safe-area-inset-top,0px) + 92px)} }
.ps-renang .ps-jok,.ps-renang .ps-lonc{display:none!important}
/* v929 (renang tahap 2): peringatan jarak laut */
.ps-renchip.ps-w1{background:rgba(214,120,12,.92)}
.ps-renchip.ps-w2{background:rgba(200,24,40,.94);animation:ps-renkedip .7s ease-in-out infinite}
@keyframes ps-renkedip{50%{transform:translateX(-50%) scale(1.07)}}

/* v930 (renang tahap 3): tewas di batas laut, terkunci dengan hitung mundur (dari server) */
.ps-mati{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 96px);transform:translateX(-50%);z-index:30;width:min(88%,340px);padding:14px 18px 12px;border-radius:16px;background:rgba(28,8,14,.82);color:#fff;text-align:center;pointer-events:none;box-shadow:0 8px 28px rgba(0,0,0,.45);border:1px solid rgba(255,120,120,.5)}
.ps-mati[hidden]{display:none}
.ps-mati b{display:block;font-size:17px;line-height:1.25;margin-bottom:4px}
.ps-mati-k{display:block;font-size:12.5px;line-height:1.4;opacity:.92}
.ps-mati-j{display:block;margin-top:8px;font:700 40px/1 ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;color:#ffb4b4;letter-spacing:.04em}
.ps-terkunci::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;box-shadow:inset 0 0 130px rgba(190,30,30,.5)}
.ps-terkunci .ps-jok,.ps-terkunci .ps-lonc{opacity:.35;pointer-events:none}

/* v938: Buku Koleksi (album): tab tier E..SSS+, halaman per tier, kartu hewan */
.ps-bk-sampul{margin:8px 0;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#12445f,#1d6f8f);color:#eaf8ff;font-size:14px}.ps-bk-sampul small{display:block;margin:3px 0 6px;font-size:12px;color:#bfe6f5}.ps-bk-sampul .ps-lvb{background:rgba(255,255,255,.22)}
.ps-bk-tab{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;margin:8px 0}
.ps-bk-tb{display:flex;flex-direction:column;align-items:center;padding:5px 0;border:1px solid #ead6e6;border-radius:9px;background:#fff8fd;color:#2b1330;font:800 12px system-ui,sans-serif;cursor:pointer}.ps-bk-tb small{font:600 9px system-ui,sans-serif;color:#7a5a7e}
.ps-bk-tb.on{background:#2b1330;color:#fff;border-color:#2b1330}.ps-bk-tb.on small{color:#e8d4ec}.ps-bk-tb.penuh:not(.on){background:#fff3c4;border-color:#f0c24a}
.ps-bk-hal{padding:10px;border-radius:14px;border:2px solid #ead6e6;background:#fffdf6}.ps-bk-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px}
.ps-bk-g{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ps-bk-k{display:flex;flex-direction:column;gap:3px;padding:8px;border-radius:12px;background:#fff;border:1px solid #ead6e6;min-width:0}.ps-bk-k b{font-size:13px;color:#2b1330}.ps-bk-k small{font-size:11px;color:#6b5470;line-height:1.3}.ps-bk-fk{font-style:italic}
.ps-bk-kp{display:flex;align-items:center;justify-content:space-between}.ps-bk-em{font-size:30px;line-height:1}
.ps-bk-k.kosong{background:#f4f1f4;border-style:dashed}.ps-bk-k.kosong .ps-bk-em{filter:brightness(0) opacity(.28)}
.ps-bk-tr{display:inline-block;min-width:26px;padding:2px 7px;border-radius:999px;text-align:center;color:#fff;font:800 12px system-ui,sans-serif}.ps-bk-tr.kecil{font-size:10px;padding:1px 6px}
.ps-bk-t0{background:#8a8f98}.ps-bk-h0{border-color:#8a8f98}
.ps-bk-t1{background:#43a047}.ps-bk-h1{border-color:#43a047}
.ps-bk-t2{background:#1e88e5}.ps-bk-h2{border-color:#1e88e5}
.ps-bk-t3{background:#8e24aa}.ps-bk-h3{border-color:#8e24aa}
.ps-bk-t4{background:#fb8c00}.ps-bk-h4{border-color:#fb8c00}
.ps-bk-t5{background:#e53935}.ps-bk-h5{border-color:#e53935}
.ps-bk-t6{background:#d81b60}.ps-bk-h6{border-color:#d81b60}
.ps-bk-t7{background:#f9a825}.ps-bk-h7{border-color:#f9a825}
.ps-bk-t8{background:#6a1b9a}.ps-bk-h8{border-color:#6a1b9a}
.ps-bk-t7{background:linear-gradient(135deg,#f9a825,#ffd54f);color:#4a3000}.ps-bk-t8{background:linear-gradient(90deg,#e53935,#fb8c00,#fdd835,#43a047,#1e88e5,#8e24aa);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.ps-bk-h7{box-shadow:0 0 0 2px #ffe08a inset}.ps-bk-h8{box-shadow:0 0 12px 1px rgba(142,36,170,.45)}
.ps-bk-nav{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.ps-bk-nav .ps-tk-b{flex:1}.ps-bk-nav .ps-tk-b:disabled{opacity:.4}

/* v939: efek dapat hewan langka (banner tier B ke atas) + warna tier di Slot Ikan dan toko */
.ps-lgk{font-family:system-ui,sans-serif;position:absolute;left:50%;top:22%;z-index:9;display:flex;align-items:center;gap:12px;min-width:210px;max-width:calc(100% - 28px);padding:12px 18px;border-radius:18px;border:3px solid #fb8c00;background:rgba(20,10,30,.88);color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.45);transform:translate(-50%,-20px) scale(.7);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2,1.4,.4,1),opacity .3s}
.ps-lgk[hidden]{display:none}.ps-lgk.on{transform:translate(-50%,0) scale(1);opacity:1}
.ps-lgk-e{font-size:46px;line-height:1}.ps-lgk-t{display:flex;flex-direction:column;gap:1px;min-width:0}.ps-lgk-t b{font-size:20px;line-height:1.15}.ps-lgk-t small{font-size:11px;letter-spacing:.06em;opacity:.9}
.ps-lg2{min-width:240px;box-shadow:0 0 26px 4px rgba(255,255,255,.28),0 8px 30px rgba(0,0,0,.5)}.ps-lg2 .ps-lgk-e{font-size:56px}
.ps-lg3{min-width:260px;background:linear-gradient(135deg,rgba(46,16,80,.94),rgba(90,30,120,.94));animation:ps-lgk-kilau 1.1s ease-in-out infinite alternate}.ps-lg3 .ps-lgk-e{font-size:64px;animation:ps-lgk-goyang 1.2s ease-in-out infinite}
@keyframes ps-lgk-kilau{from{box-shadow:0 0 18px 2px rgba(255,213,79,.55),0 8px 30px rgba(0,0,0,.5)}to{box-shadow:0 0 42px 10px rgba(171,71,188,.75),0 8px 30px rgba(0,0,0,.5)}}
@keyframes ps-lgk-goyang{0%,100%{transform:rotate(-6deg) scale(1)}50%{transform:rotate(6deg) scale(1.12)}}
@media (prefers-reduced-motion:reduce){.ps-lgk{transition:opacity .2s}.ps-lg3,.ps-lg3 .ps-lgk-e{animation:none}}
.ps-sl-c{position:relative}.ps-sl-c i{position:absolute;top:2px;right:3px;font:800 8px/1 system-ui,sans-serif;font-style:normal;color:#fff;padding:1px 3px;border-radius:5px;background:#8a8f98}
.ps-sl-t0{border-color:#8a8f98!important}.ps-sl-t0 i{background:#8a8f98}
.ps-sl-t1{border-color:#43a047!important}.ps-sl-t1 i{background:#43a047}
.ps-sl-t2{border-color:#1e88e5!important}.ps-sl-t2 i{background:#1e88e5}
.ps-sl-t3{border-color:#8e24aa!important}.ps-sl-t3 i{background:#8e24aa}
.ps-sl-t4{border-color:#fb8c00!important}.ps-sl-t4 i{background:#fb8c00}
.ps-sl-t5{border-color:#e53935!important}.ps-sl-t5 i{background:#e53935}
.ps-sl-t6{border-color:#d81b60!important}.ps-sl-t6 i{background:#d81b60}
.ps-sl-t7{border-color:#f9a825!important}.ps-sl-t7 i{background:#f9a825}
.ps-sl-t8{border-color:#6a1b9a!important}.ps-sl-t8 i{background:#6a1b9a}
.ps-sl-t5,.ps-sl-t6{box-shadow:0 0 6px 1px rgba(229,57,53,.45)}.ps-sl-t7{box-shadow:0 0 8px 2px rgba(249,168,37,.7)}.ps-sl-t7 i{color:#4a3000}.ps-sl-t8{box-shadow:0 0 10px 3px rgba(142,36,170,.65)}.ps-sl-t8 i{background:linear-gradient(90deg,#e53935,#fb8c00,#fdd835,#43a047,#1e88e5,#8e24aa)}
.ps-tk-t b .ps-bk-tr{vertical-align:middle;margin-left:2px}

/* v940: pamer ikan (pilihan di Slot Ikan) */
.ps-pm{margin:8px 0 2px}.ps-pm h4{margin:0 0 5px;font:800 13px system-ui,sans-serif;color:#2b1330}
.ps-pm-l{display:flex;flex-wrap:wrap;gap:6px}
.ps-pm-c{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:4px 10px;border:1px solid #ead6e6;border-radius:999px;background:#fff8fd;color:#2b1330;font:700 12px system-ui,sans-serif;cursor:pointer}
.ps-pm-c .e{font-size:17px;line-height:1}.ps-pm-c small{font-weight:700;opacity:.75}
.ps-pm-c.on{background:#ff1d86;border-color:#ff1d86;color:#fff;box-shadow:0 2px 8px rgba(255,29,134,.35)}
.ps-pm-c.on small{opacity:.9}
.ps-pm-s{margin:5px 0 0;font:600 11px/1.4 system-ui,sans-serif;color:#7a5a6e}
.ps-sl-bawa::after{content:"\270B";position:absolute;left:3px;bottom:1px;font-size:11px;line-height:1}
/* v944: favorit ikan + dua tabel (Favorit / Ikan biasa) + jual otomatis */
.ps-fv{margin-top:6px}
.ps-pm-c.ps-fv-c.on{background:#ffb400;border-color:#ffb400;color:#3a2600;box-shadow:0 2px 8px rgba(255,180,0,.4)}
.ps-tb-h{margin:12px 0 2px;font:800 13px system-ui,sans-serif;color:#2b1330}
.ps-tb-f{color:#8a5a00}
.ps-tb-k{margin:2px 0 0;font-size:12px}
.ps-sl-gf{padding:6px;border-radius:14px;background:rgba(255,196,60,.14);border:1px dashed #e8b53a}
.ps-sl-c.ps-sl-fav{border-color:#e8b53a;box-shadow:0 0 0 1px rgba(232,181,58,.55)}
.ps-sl-c .ps-sl-s{position:absolute;left:2px;top:1px;font-size:10px;line-height:1;font-weight:400}
.ps-oj{margin-top:10px}.ps-oj .ps-tk-b{width:100%}
.ps-oj small{display:block;margin-top:4px;font:600 11px/1.4 system-ui,sans-serif;color:#7a5a6e}
.ps-oj .ps-tk-b:disabled{opacity:.55}
/* v946: panel Slot Ikan / Toko Pancing / Buku Koleksi = POP UP besar: 90% layar (sisa 10% = 5% tiap sisi), latar gelap terlihat, menyesuaikan ukuran layar */
.ps-tk{padding:5%;align-items:center;justify-content:center;background:rgba(20,6,26,.62)}
.ps-tk .ps-rm-k{width:100%;max-width:1100px;height:100%;max-height:100%;box-sizing:border-box;border-radius:20px;padding:16px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.ps-tk .ps-rm-hd{position:sticky;top:-16px;z-index:2;margin:-16px -16px 8px;padding:12px 16px 8px;background:#fff;border-bottom:1px solid #f0e2ee;border-radius:20px 20px 0 0}
.ps-tk .ps-sl-g{grid-template-columns:repeat(auto-fill,minmax(clamp(52px,14vw,88px),1fr));gap:clamp(6px,1.4vw,10px)}
.ps-tk .ps-sl-c{min-height:0}
@media (min-width:700px){.ps-tk .ps-rm-k{padding:20px 28px}.ps-tk .ps-rm-hd{top:-20px;margin:-20px -28px 8px;padding:14px 28px 8px}}
/* v948: pilih batas tier jual otomatis */
.ps-oj-t{display:flex;flex-direction:column;gap:4px;margin:0 0 6px;font:700 12px system-ui,sans-serif;color:#2b1330}
.ps-oj-t select{min-height:40px;padding:6px 10px;border:1px solid #ead6e6;border-radius:12px;background:#fff8fd;color:#2b1330;font:600 13px system-ui,sans-serif}
.ps-oj-k{display:flex;align-items:flex-start;gap:8px;margin:0 0 8px;font:600 12px/1.4 system-ui,sans-serif;color:#2b1330}.ps-oj-k input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:#ff1d86}
