/* ===== Asah Kata — gaya dasar =====
   Dirancang untuk layar ponsel, huruf besar dan kontras tinggi
   supaya nyaman dibaca pemain usia 35 tahun ke atas. */

:root {
  --hijau-tua: #0e2a19;
  --hijau: #143a23;
  --hijau-muda: #1d5233;
  --krem: #f6efdf;
  --krem-gelap: #e2d6bd;
  --emas: #f0b429;
  --emas-tua: #c98a12;
  --merah: #d64545;
  --teks-gelap: #22301f;
  --bayang: 0 4px 0 rgba(0, 0, 0, 0.25);
}

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html, body {
  height: 100%;
  overflow: hidden;
}

body {
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--hijau-tua);
  color: var(--krem);
  user-select: none;
}

/* ---------- Kerangka layar ---------- */
.layar {
  display: none;
  position: absolute;
  inset: 0;
  flex-direction: column;
}
.layar.aktif { display: flex; }

/* ---------- Layar pembuka ---------- */
#layar-menu {
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 30%, var(--hijau-muda), var(--hijau-tua) 70%);
  padding: 24px;
}

.menu-isi { text-align: center; width: 100%; max-width: 420px; }

.logo-besar { font-size: 76px; line-height: 1; margin-bottom: 8px; }

.judul {
  font-size: 40px;
  letter-spacing: 4px;
  color: var(--emas);
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.35);
}

.subjudul {
  margin-top: 10px;
  font-size: 16px;
  color: var(--krem-gelap);
  line-height: 1.5;
}

.menu-stat {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 28px 0;
}

.menu-stat-item {
  flex: 1;
  background: rgba(0, 0, 0, 0.22);
  border-radius: 14px;
  padding: 14px 6px;
}

.menu-stat-angka {
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: var(--emas);
}

.menu-stat-label {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--krem-gelap);
  text-transform: uppercase;
}

/* ---------- Tombol ---------- */
.tombol-utama {
  width: 100%;
  padding: 17px;
  border: none;
  border-radius: 14px;
  background: var(--emas);
  color: #2a1c00;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 1.5px;
  font-family: inherit;
  box-shadow: 0 5px 0 var(--emas-tua);
  cursor: pointer;
  transition: transform 0.06s, box-shadow 0.06s;
}
.tombol-utama:active {
  transform: translateY(4px);
  box-shadow: 0 1px 0 var(--emas-tua);
}

.tombol-teks {
  margin-top: 16px;
  background: none;
  border: none;
  color: var(--krem-gelap);
  font-size: 15px;
  font-family: inherit;
  text-decoration: underline;
  cursor: pointer;
  padding: 8px;
}

/* ---------- Bar atas saat bermain ---------- */
.bar-atas {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--hijau);
  border-bottom: 2px solid rgba(0, 0, 0, 0.25);
  flex-shrink: 0;
}

.ikon-tombol {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  border: none;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.25);
  color: var(--krem);
  font-size: 26px;
  line-height: 1;
  font-family: inherit;
  cursor: pointer;
}

.bar-level { flex: 1; min-width: 0; }

.bar-level-teks {
  display: block;
  font-size: 12px;
  letter-spacing: 1.5px;
  color: var(--krem-gelap);
  margin-bottom: 5px;
}
.bar-level-teks b { color: var(--krem); font-size: 14px; }

.bar-progres {
  height: 7px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  overflow: hidden;
}
.bar-progres-isi {
  height: 100%;
  width: 0;
  background: var(--emas);
  border-radius: 4px;
  transition: width 0.3s;
}

.bar-koin {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  background: rgba(0, 0, 0, 0.25);
  padding: 8px 12px;
  border-radius: 20px;
  font-size: 16px;
  color: var(--emas);
}
.koin-ikon { font-size: 15px; }

/* ---------- Papan permainan ---------- */
.papan {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px 14px 8px;
  overflow-y: auto;
}

.kartu-petunjuk {
  background: var(--hijau);
  border: 2px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  padding: 18px 16px;
  text-align: center;
}

.label-kategori {
  display: inline-block;
  background: var(--emas);
  color: #2a1c00;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 10px;
}

.teks-petunjuk {
  font-size: 19px;
  line-height: 1.45;
  color: var(--krem);
}

/* Kotak jawaban, pesan, dan rak huruf dijaga tetap berdekatan
   supaya tidak terpencar di layar yang tinggi. */
.grup-tengah {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ---------- Kotak jawaban ---------- */
.slot-jawaban {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin: 0 0 6px;
}

.slot {
  width: 44px;
  height: 52px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 2px dashed rgba(246, 239, 223, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 800;
  color: var(--krem);
}

.slot.terisi {
  background: var(--krem);
  border: 2px solid var(--krem-gelap);
  border-style: solid;
  color: var(--teks-gelap);
  cursor: pointer;
  box-shadow: var(--bayang);
}

.slot.dikunci {
  background: var(--emas);
  border-color: var(--emas-tua);
  color: #2a1c00;
  cursor: default;
}

.slot.benar {
  background: #46b06a;
  border-color: #2f8a4d;
  color: #fff;
  animation: naik 0.32s ease;
}

.slot.salah { animation: goyang 0.36s ease; }

@keyframes naik {
  0% { transform: translateY(0); }
  45% { transform: translateY(-11px); }
  100% { transform: translateY(0); }
}

@keyframes goyang {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); }
  40% { transform: translateX(7px); }
  60% { transform: translateX(-5px); }
  80% { transform: translateX(5px); }
}

.pesan-status {
  text-align: center;
  min-height: 22px;
  font-size: 15px;
  font-weight: 600;
  color: var(--merah);
}
.pesan-status.info { color: var(--krem-gelap); font-weight: 500; }

/* ---------- Rak huruf ---------- */
.rak-huruf {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin: 14px 0 20px;
}

.huruf {
  width: 50px;
  height: 56px;
  border: none;
  border-radius: 12px;
  background: var(--krem);
  color: var(--teks-gelap);
  font-size: 26px;
  font-weight: 800;
  font-family: inherit;
  box-shadow: 0 4px 0 var(--krem-gelap);
  cursor: pointer;
  transition: transform 0.06s, box-shadow 0.06s, opacity 0.15s;
}
.huruf:active {
  transform: translateY(3px);
  box-shadow: 0 1px 0 var(--krem-gelap);
}
/* Huruf yang sudah dipindah ke kotak jawaban: tempatnya dibiarkan kosong
   agar posisi huruf lain tidak melompat, tapi tetap terlihat sebagai bekas. */
.huruf.dipakai {
  background: transparent;
  border: 2px dashed rgba(246, 239, 223, 0.18);
  box-shadow: none;
  color: transparent;
  pointer-events: none;
}

/* ---------- Baris aksi ---------- */
.baris-aksi {
  display: flex;
  gap: 9px;
  padding-bottom: 6px;
}

.tombol-aksi {
  flex: 1;
  padding: 11px 4px;
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: 13px;
  background: var(--hijau);
  color: var(--krem);
  font-family: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.tombol-aksi:active { background: var(--hijau-muda); }
.tombol-aksi:disabled { opacity: 0.45; cursor: default; }

.aksi-ikon { font-size: 20px; }
.aksi-teks { font-size: 12.5px; font-weight: 600; }
.aksi-harga { font-size: 11px; color: var(--emas); }

/* ---------- Slot iklan ---------- */
.slot-iklan {
  flex-shrink: 0;
  min-height: 0;
  background: rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.slot-iklan:not(:empty) { min-height: 60px; padding: 6px 0; }

/* ---------- Tirai & popup ---------- */
.tirai {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.68);
  z-index: 40;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.tirai.aktif { display: flex; animation: muncul 0.2s ease; }

@keyframes muncul { from { opacity: 0; } to { opacity: 1; } }

.popup {
  width: 100%;
  max-width: 380px;
  background: var(--hijau);
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 28px 22px 22px;
  text-align: center;
  animation: melompat 0.28s ease;
}

@keyframes melompat {
  from { transform: scale(0.86); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.popup-kiri { text-align: left; }
.popup-kiri .popup-judul { text-align: center; }

.popup-ikon { font-size: 54px; line-height: 1; }

.popup-judul {
  margin-top: 8px;
  font-size: 25px;
  color: var(--emas);
}

.popup-kata {
  margin-top: 12px;
  font-size: 30px;
  font-weight: 800;
  letter-spacing: 4px;
  color: var(--krem);
}

.popup-hadiah {
  margin: 14px 0 22px;
  font-size: 15px;
  color: var(--krem-gelap);
}
.popup-hadiah b { color: var(--emas); }
.popup-pisah { margin: 0 8px; opacity: 0.5; }

.daftar-cara {
  margin: 20px 0 26px 20px;
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--krem-gelap);
}
.daftar-cara b { color: var(--krem); }

/* ---------- Layar sempit ---------- */
@media (max-width: 360px) {
  .huruf { width: 44px; height: 50px; font-size: 23px; }
  .slot { width: 38px; height: 46px; font-size: 21px; }
  .teks-petunjuk { font-size: 17px; }
  .judul { font-size: 34px; }
}

/* ---------- Layar pendek (misal ponsel lawas) ---------- */
@media (max-height: 620px) {
  .kartu-petunjuk { padding: 13px 14px; }
  .slot-jawaban { margin: 15px 0 4px; }
  .rak-huruf { margin: 10px 0 14px; }
}

/* Tautan kaki di layar menu — Kebijakan Privasi & Ketentuan (untuk review FB). */
.menu-kaki{ margin-top:26px; display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:12.5px; }
.menu-kaki a{ color:var(--krem-gelap); text-decoration:none; opacity:.85; transition:.2s; }
.menu-kaki a:hover{ color:var(--emas); opacity:1; }
.menu-kaki span{ color:var(--krem-gelap); opacity:.5; }
